Lines Matching refs:tty
174 static void isicom_start(struct tty_struct *tty);
400 struct tty_struct *tty; in isicom_tx() local
427 tty = tty_port_tty_get(&port->port); in isicom_tx()
428 if (tty == NULL) in isicom_tx()
438 if (txcount <= 0 || tty->stopped || tty->hw_stopped) in isicom_tx()
491 tty_wakeup(tty); in isicom_tx()
495 tty_kref_put(tty); in isicom_tx()
511 struct tty_struct *tty; in isicom_interrupt() local
554 tty = tty_port_tty_get(&port->port); in isicom_interrupt()
555 if (tty == NULL) { in isicom_interrupt()
579 tty_hangup(tty); in isicom_interrupt()
596 if (tty->hw_stopped) { in isicom_interrupt()
598 tty->hw_stopped = 0; in isicom_interrupt()
602 tty_wakeup(tty); in isicom_interrupt()
605 tty->hw_stopped = 1; in isicom_interrupt()
631 do_SAK(tty); in isicom_interrupt()
670 tty_kref_put(tty); in isicom_interrupt()
675 static void isicom_config_port(struct tty_struct *tty) in isicom_config_port() argument
677 struct isi_port *port = tty->driver_data; in isicom_config_port()
686 baud = C_BAUD(tty); in isicom_config_port()
697 tty->termios.c_cflag &= ~CBAUDEX; in isicom_config_port()
728 switch (C_CSIZE(tty)) { in isicom_config_port()
743 if (C_CSTOPB(tty)) in isicom_config_port()
745 if (C_PARENB(tty)) { in isicom_config_port()
747 if (C_PARODD(tty)) in isicom_config_port()
753 tty_port_set_check_carrier(&port->port, !C_CLOCAL(tty)); in isicom_config_port()
757 tty_port_set_cts_flow(&port->port, C_CRTSCTS(tty)); in isicom_config_port()
758 if (C_CRTSCTS(tty)) in isicom_config_port()
760 if (I_IXON(tty)) in isicom_config_port()
762 if (I_IXOFF(tty)) in isicom_config_port()
768 outw((STOP_CHAR(tty)) << 8 | (START_CHAR(tty)), base); in isicom_config_port()
773 if (C_CREAD(tty)) { in isicom_config_port()
798 static int isicom_activate(struct tty_port *tport, struct tty_struct *tty) in isicom_activate() argument
819 isicom_config_port(tty); in isicom_activate()
831 static struct tty_port *isicom_find_port(struct tty_struct *tty) in isicom_find_port() argument
836 int line = tty->index; in isicom_find_port()
849 if (isicom_paranoia_check(port, tty->name, "isicom_open")) in isicom_find_port()
855 static int isicom_open(struct tty_struct *tty, struct file *filp) in isicom_open() argument
860 tport = isicom_find_port(tty); in isicom_open()
865 tty->driver_data = port; in isicom_open()
866 return tty_port_open(tport, tty, filp); in isicom_open()
886 static void isicom_flush_buffer(struct tty_struct *tty) in isicom_flush_buffer() argument
888 struct isi_port *port = tty->driver_data; in isicom_flush_buffer()
892 if (isicom_paranoia_check(port, tty->name, "isicom_flush_buffer")) in isicom_flush_buffer()
899 tty_wakeup(tty); in isicom_flush_buffer()
918 static void isicom_close(struct tty_struct *tty, struct file *filp) in isicom_close() argument
920 struct isi_port *ip = tty->driver_data; in isicom_close()
927 if (isicom_paranoia_check(ip, tty->name, "isicom_close")) in isicom_close()
929 tty_port_close(port, tty, filp); in isicom_close()
933 static int isicom_write(struct tty_struct *tty, const unsigned char *buf, in isicom_write() argument
936 struct isi_port *port = tty->driver_data; in isicom_write()
941 if (isicom_paranoia_check(port, tty->name, "isicom_write")) in isicom_write()
960 if (port->xmit_cnt && !tty->stopped && !tty->hw_stopped) in isicom_write()
967 static int isicom_put_char(struct tty_struct *tty, unsigned char ch) in isicom_put_char() argument
969 struct isi_port *port = tty->driver_data; in isicom_put_char()
973 if (isicom_paranoia_check(port, tty->name, "isicom_put_char")) in isicom_put_char()
990 static void isicom_flush_chars(struct tty_struct *tty) in isicom_flush_chars() argument
992 struct isi_port *port = tty->driver_data; in isicom_flush_chars()
994 if (isicom_paranoia_check(port, tty->name, "isicom_flush_chars")) in isicom_flush_chars()
997 if (port->xmit_cnt <= 0 || tty->stopped || tty->hw_stopped || in isicom_flush_chars()
1007 static int isicom_write_room(struct tty_struct *tty) in isicom_write_room() argument
1009 struct isi_port *port = tty->driver_data; in isicom_write_room()
1012 if (isicom_paranoia_check(port, tty->name, "isicom_write_room")) in isicom_write_room()
1022 static int isicom_chars_in_buffer(struct tty_struct *tty) in isicom_chars_in_buffer() argument
1024 struct isi_port *port = tty->driver_data; in isicom_chars_in_buffer()
1025 if (isicom_paranoia_check(port, tty->name, "isicom_chars_in_buffer")) in isicom_chars_in_buffer()
1031 static int isicom_send_break(struct tty_struct *tty, int length) in isicom_send_break() argument
1033 struct isi_port *port = tty->driver_data; in isicom_send_break()
1052 static int isicom_tiocmget(struct tty_struct *tty) in isicom_tiocmget() argument
1054 struct isi_port *port = tty->driver_data; in isicom_tiocmget()
1058 if (isicom_paranoia_check(port, tty->name, "isicom_ioctl")) in isicom_tiocmget()
1069 static int isicom_tiocmset(struct tty_struct *tty, in isicom_tiocmset() argument
1072 struct isi_port *port = tty->driver_data; in isicom_tiocmset()
1075 if (isicom_paranoia_check(port, tty->name, "isicom_ioctl")) in isicom_tiocmset()
1093 static int isicom_set_serial_info(struct tty_struct *tty, in isicom_set_serial_info() argument
1096 struct isi_port *port = tty->driver_data; in isicom_set_serial_info()
1126 isicom_config_port(tty); in isicom_set_serial_info()
1154 static int isicom_ioctl(struct tty_struct *tty, in isicom_ioctl() argument
1157 struct isi_port *port = tty->driver_data; in isicom_ioctl()
1160 if (isicom_paranoia_check(port, tty->name, "isicom_ioctl")) in isicom_ioctl()
1168 return isicom_set_serial_info(tty, argp); in isicom_ioctl()
1177 static void isicom_set_termios(struct tty_struct *tty, in isicom_set_termios() argument
1180 struct isi_port *port = tty->driver_data; in isicom_set_termios()
1183 if (isicom_paranoia_check(port, tty->name, "isicom_set_termios")) in isicom_set_termios()
1186 if (tty->termios.c_cflag == old_termios->c_cflag && in isicom_set_termios()
1187 tty->termios.c_iflag == old_termios->c_iflag) in isicom_set_termios()
1191 isicom_config_port(tty); in isicom_set_termios()
1194 if ((old_termios->c_cflag & CRTSCTS) && !C_CRTSCTS(tty)) { in isicom_set_termios()
1195 tty->hw_stopped = 0; in isicom_set_termios()
1196 isicom_start(tty); in isicom_set_termios()
1201 static void isicom_throttle(struct tty_struct *tty) in isicom_throttle() argument
1203 struct isi_port *port = tty->driver_data; in isicom_throttle()
1206 if (isicom_paranoia_check(port, tty->name, "isicom_throttle")) in isicom_throttle()
1215 static void isicom_unthrottle(struct tty_struct *tty) in isicom_unthrottle() argument
1217 struct isi_port *port = tty->driver_data; in isicom_unthrottle()
1220 if (isicom_paranoia_check(port, tty->name, "isicom_unthrottle")) in isicom_unthrottle()
1229 static void isicom_stop(struct tty_struct *tty) in isicom_stop() argument
1231 struct isi_port *port = tty->driver_data; in isicom_stop()
1233 if (isicom_paranoia_check(port, tty->name, "isicom_stop")) in isicom_stop()
1242 static void isicom_start(struct tty_struct *tty) in isicom_start() argument
1244 struct isi_port *port = tty->driver_data; in isicom_start()
1246 if (isicom_paranoia_check(port, tty->name, "isicom_start")) in isicom_start()
1254 static void isicom_hangup(struct tty_struct *tty) in isicom_hangup() argument
1256 struct isi_port *port = tty->driver_data; in isicom_hangup()
1258 if (isicom_paranoia_check(port, tty->name, "isicom_hangup")) in isicom_hangup()