Lines Matching refs:tty

54 static void uart_change_speed(struct tty_struct *tty, struct uart_state *state,
56 static void uart_wait_until_sent(struct tty_struct *tty, int timeout);
79 tty_wakeup(state->port.tty); in uart_write_wakeup()
82 static void uart_stop(struct tty_struct *tty) in uart_stop() argument
84 struct uart_state *state = tty->driver_data; in uart_stop()
93 static void __uart_start(struct tty_struct *tty) in __uart_start() argument
95 struct uart_state *state = tty->driver_data; in __uart_start()
102 static void uart_start(struct tty_struct *tty) in uart_start() argument
104 struct uart_state *state = tty->driver_data; in uart_start()
109 __uart_start(tty); in uart_start()
134 static int uart_port_startup(struct tty_struct *tty, struct uart_state *state, in uart_port_startup() argument
166 tty->termios.c_cflag = uport->cons->cflag; in uart_port_startup()
172 uart_change_speed(tty, state, NULL); in uart_port_startup()
179 if (tty->termios.c_cflag & CBAUD) in uart_port_startup()
195 static int uart_startup(struct tty_struct *tty, struct uart_state *state, in uart_startup() argument
208 set_bit(TTY_IO_ERROR, &tty->flags); in uart_startup()
210 retval = uart_port_startup(tty, state, init_hw); in uart_startup()
213 clear_bit(TTY_IO_ERROR, &tty->flags); in uart_startup()
225 static void uart_shutdown(struct tty_struct *tty, struct uart_state *state) in uart_shutdown() argument
233 if (tty) in uart_shutdown()
234 set_bit(TTY_IO_ERROR, &tty->flags); in uart_shutdown()
240 if (uart_console(uport) && tty) in uart_shutdown()
241 uport->cons->cflag = tty->termios.c_cflag; in uart_shutdown()
243 if (!tty || (tty->termios.c_cflag & HUPCL)) in uart_shutdown()
443 static void uart_change_speed(struct tty_struct *tty, struct uart_state *state, in uart_change_speed() argument
454 if (!tty || uport->type == PORT_UNKNOWN) in uart_change_speed()
457 termios = &tty->termios; in uart_change_speed()
483 __uart_start(tty); in uart_change_speed()
507 static int uart_put_char(struct tty_struct *tty, unsigned char ch) in uart_put_char() argument
509 struct uart_state *state = tty->driver_data; in uart_put_char()
514 static void uart_flush_chars(struct tty_struct *tty) in uart_flush_chars() argument
516 uart_start(tty); in uart_flush_chars()
519 static int uart_write(struct tty_struct *tty, in uart_write() argument
522 struct uart_state *state = tty->driver_data; in uart_write()
557 __uart_start(tty); in uart_write()
563 static int uart_write_room(struct tty_struct *tty) in uart_write_room() argument
565 struct uart_state *state = tty->driver_data; in uart_write_room()
575 static int uart_chars_in_buffer(struct tty_struct *tty) in uart_chars_in_buffer() argument
577 struct uart_state *state = tty->driver_data; in uart_chars_in_buffer()
587 static void uart_flush_buffer(struct tty_struct *tty) in uart_flush_buffer() argument
589 struct uart_state *state = tty->driver_data; in uart_flush_buffer()
603 pr_debug("uart_flush_buffer(%d) called\n", tty->index); in uart_flush_buffer()
610 tty_wakeup(tty); in uart_flush_buffer()
617 static void uart_send_xchar(struct tty_struct *tty, char ch) in uart_send_xchar() argument
619 struct uart_state *state = tty->driver_data; in uart_send_xchar()
634 static void uart_throttle(struct tty_struct *tty) in uart_throttle() argument
636 struct uart_state *state = tty->driver_data; in uart_throttle()
640 if (I_IXOFF(tty)) in uart_throttle()
642 if (tty->termios.c_cflag & CRTSCTS) in uart_throttle()
651 uart_send_xchar(tty, STOP_CHAR(tty)); in uart_throttle()
657 static void uart_unthrottle(struct tty_struct *tty) in uart_unthrottle() argument
659 struct uart_state *state = tty->driver_data; in uart_unthrottle()
663 if (I_IXOFF(tty)) in uart_unthrottle()
665 if (tty->termios.c_cflag & CRTSCTS) in uart_unthrottle()
674 uart_send_xchar(tty, START_CHAR(tty)); in uart_unthrottle()
729 static int uart_set_info(struct tty_struct *tty, struct tty_port *port, in uart_set_info() argument
813 uart_shutdown(tty, state); in uart_set_info()
911 tty_name(port->tty)); in uart_set_info()
913 uart_change_speed(tty, state, NULL); in uart_set_info()
916 retval = uart_startup(tty, state, 1); in uart_set_info()
921 static int uart_set_info_user(struct tty_struct *tty, struct uart_state *state, in uart_set_info_user() argument
939 retval = uart_set_info(tty, port, state, &new_serial); in uart_set_info_user()
952 static int uart_get_lsr_info(struct tty_struct *tty, in uart_get_lsr_info() argument
974 static int uart_tiocmget(struct tty_struct *tty) in uart_tiocmget() argument
976 struct uart_state *state = tty->driver_data; in uart_tiocmget()
982 if (!(tty->flags & (1 << TTY_IO_ERROR))) { in uart_tiocmget()
994 uart_tiocmset(struct tty_struct *tty, unsigned int set, unsigned int clear) in uart_tiocmset() argument
996 struct uart_state *state = tty->driver_data; in uart_tiocmset()
1002 if (!(tty->flags & (1 << TTY_IO_ERROR))) { in uart_tiocmset()
1010 static int uart_break_ctl(struct tty_struct *tty, int break_state) in uart_break_ctl() argument
1012 struct uart_state *state = tty->driver_data; in uart_break_ctl()
1025 static int uart_do_autoconfig(struct tty_struct *tty,struct uart_state *state) in uart_do_autoconfig() argument
1044 uart_shutdown(tty, state); in uart_do_autoconfig()
1063 ret = uart_startup(tty, state, 1); in uart_do_autoconfig()
1142 static int uart_get_icount(struct tty_struct *tty, in uart_get_icount() argument
1145 struct uart_state *state = tty->driver_data; in uart_get_icount()
1213 uart_ioctl(struct tty_struct *tty, unsigned int cmd, in uart_ioctl() argument
1216 struct uart_state *state = tty->driver_data; in uart_ioctl()
1231 down_write(&tty->termios_rwsem); in uart_ioctl()
1232 ret = uart_set_info_user(tty, state, uarg); in uart_ioctl()
1233 up_write(&tty->termios_rwsem); in uart_ioctl()
1237 down_write(&tty->termios_rwsem); in uart_ioctl()
1238 ret = uart_do_autoconfig(tty, state); in uart_ioctl()
1239 up_write(&tty->termios_rwsem); in uart_ioctl()
1251 if (tty->flags & (1 << TTY_IO_ERROR)) { in uart_ioctl()
1270 if (tty->flags & (1 << TTY_IO_ERROR)) { in uart_ioctl()
1282 ret = uart_get_lsr_info(tty, state, uarg); in uart_ioctl()
1305 static void uart_set_ldisc(struct tty_struct *tty) in uart_set_ldisc() argument
1307 struct uart_state *state = tty->driver_data; in uart_set_ldisc()
1312 uport->ops->set_ldisc(uport, &tty->termios); in uart_set_ldisc()
1317 static void uart_set_termios(struct tty_struct *tty, in uart_set_termios() argument
1320 struct uart_state *state = tty->driver_data; in uart_set_termios()
1322 unsigned int cflag = tty->termios.c_cflag; in uart_set_termios()
1333 tty->termios.c_cc[VSTART] != old_termios->c_cc[VSTART] || in uart_set_termios()
1334 tty->termios.c_cc[VSTOP] != old_termios->c_cc[VSTOP]; in uart_set_termios()
1344 tty->termios.c_ospeed == old_termios->c_ospeed && in uart_set_termios()
1345 tty->termios.c_ispeed == old_termios->c_ispeed && in uart_set_termios()
1346 ((tty->termios.c_iflag ^ old_termios->c_iflag) & iflag_mask) == 0 && in uart_set_termios()
1352 uart_change_speed(tty, state, old_termios); in uart_set_termios()
1355 cflag = tty->termios.c_cflag; in uart_set_termios()
1363 if (!(cflag & CRTSCTS) || !test_bit(TTY_THROTTLED, &tty->flags)) in uart_set_termios()
1375 static void uart_close(struct tty_struct *tty, struct file *filp) in uart_close() argument
1377 struct uart_state *state = tty->driver_data; in uart_close()
1382 struct uart_driver *drv = tty->driver->driver_state; in uart_close()
1384 state = drv->state + tty->index; in uart_close()
1397 if (!port->count || tty_port_close_start(port, tty, filp) == 0) in uart_close()
1413 uart_wait_until_sent(tty, uport->timeout); in uart_close()
1417 uart_shutdown(tty, state); in uart_close()
1443 tty_ldisc_flush(tty); in uart_close()
1444 tty->closing = 0; in uart_close()
1447 static void uart_wait_until_sent(struct tty_struct *tty, int timeout) in uart_wait_until_sent() argument
1449 struct uart_state *state = tty->driver_data; in uart_wait_until_sent()
1507 static void uart_hangup(struct tty_struct *tty) in uart_hangup() argument
1509 struct uart_state *state = tty->driver_data; in uart_hangup()
1517 uart_flush_buffer(tty); in uart_hangup()
1518 uart_shutdown(tty, state); in uart_hangup()
1592 static int uart_open(struct tty_struct *tty, struct file *filp) in uart_open() argument
1594 struct uart_driver *drv = (struct uart_driver *)tty->driver->driver_state; in uart_open()
1595 int retval, line = tty->index; in uart_open()
1622 tty->driver_data = state; in uart_open()
1626 tty_port_tty_set(port, tty); in uart_open()
1631 retval = uart_startup(tty, state, 0); in uart_open()
1638 retval = tty_port_block_til_ready(port, tty, filp); in uart_open()
2127 if (port->tty && termios.c_cflag == 0) in uart_resume_port()
2128 termios = port->tty->termios; in uart_resume_port()
2147 struct tty_struct *tty = port->tty; in uart_resume_port() local
2150 if (tty) in uart_resume_port()
2151 uart_change_speed(tty, state, NULL); in uart_resume_port()
2163 uart_shutdown(tty, state); in uart_resume_port()
2759 struct tty_struct *tty; in uart_remove_one_port() local
2788 tty = tty_port_tty_get(port); in uart_remove_one_port()
2789 if (tty) { in uart_remove_one_port()
2790 tty_vhangup(port->tty); in uart_remove_one_port()
2791 tty_kref_put(tty); in uart_remove_one_port()
2854 struct tty_struct *tty = port->tty; in uart_handle_dcd_change() local
2859 if (tty) { in uart_handle_dcd_change()
2860 ld = tty_ldisc_ref(tty); in uart_handle_dcd_change()
2863 ld->ops->dcd_change(tty, status); in uart_handle_dcd_change()
2873 else if (tty) in uart_handle_dcd_change()
2874 tty_hangup(tty); in uart_handle_dcd_change()