Lines Matching refs:tty

91 	struct ipw_tty *tty = get_tty(linux_tty->index);  in ipw_open()  local
93 if (!tty) in ipw_open()
96 mutex_lock(&tty->ipw_tty_mutex); in ipw_open()
97 if (tty->port.count == 0) in ipw_open()
98 tty->tx_bytes_queued = 0; in ipw_open()
100 tty->port.count++; in ipw_open()
102 tty->port.tty = linux_tty; in ipw_open()
103 linux_tty->driver_data = tty; in ipw_open()
104 tty->port.low_latency = 1; in ipw_open()
106 if (tty->tty_type == TTYTYPE_MODEM) in ipw_open()
107 ipwireless_ppp_open(tty->network); in ipw_open()
109 mutex_unlock(&tty->ipw_tty_mutex); in ipw_open()
114 static void do_ipw_close(struct ipw_tty *tty) in do_ipw_close() argument
116 tty->port.count--; in do_ipw_close()
118 if (tty->port.count == 0) { in do_ipw_close()
119 struct tty_struct *linux_tty = tty->port.tty; in do_ipw_close()
122 tty->port.tty = NULL; in do_ipw_close()
125 if (tty->tty_type == TTYTYPE_MODEM) in do_ipw_close()
126 ipwireless_ppp_close(tty->network); in do_ipw_close()
133 struct ipw_tty *tty = linux_tty->driver_data; in ipw_hangup() local
135 if (!tty) in ipw_hangup()
138 mutex_lock(&tty->ipw_tty_mutex); in ipw_hangup()
139 if (tty->port.count == 0) { in ipw_hangup()
140 mutex_unlock(&tty->ipw_tty_mutex); in ipw_hangup()
144 do_ipw_close(tty); in ipw_hangup()
146 mutex_unlock(&tty->ipw_tty_mutex); in ipw_hangup()
155 void ipwireless_tty_received(struct ipw_tty *tty, unsigned char *data, in ipwireless_tty_received() argument
160 mutex_lock(&tty->ipw_tty_mutex); in ipwireless_tty_received()
162 if (!tty->port.count) { in ipwireless_tty_received()
163 mutex_unlock(&tty->ipw_tty_mutex); in ipwireless_tty_received()
166 mutex_unlock(&tty->ipw_tty_mutex); in ipwireless_tty_received()
168 work = tty_insert_flip_string(&tty->port, data, length); in ipwireless_tty_received()
176 tty_flip_buffer_push(&tty->port); in ipwireless_tty_received()
182 struct ipw_tty *tty = callback_data; in ipw_write_packet_sent_callback() local
188 tty->tx_bytes_queued -= packet_length; in ipw_write_packet_sent_callback()
194 struct ipw_tty *tty = linux_tty->driver_data; in ipw_write() local
197 if (!tty) in ipw_write()
200 mutex_lock(&tty->ipw_tty_mutex); in ipw_write()
201 if (!tty->port.count) { in ipw_write()
202 mutex_unlock(&tty->ipw_tty_mutex); in ipw_write()
206 room = IPWIRELESS_TX_QUEUE_SIZE - tty->tx_bytes_queued; in ipw_write()
214 mutex_unlock(&tty->ipw_tty_mutex); in ipw_write()
218 ret = ipwireless_send_packet(tty->hardware, IPW_CHANNEL_RAS, in ipw_write()
220 ipw_write_packet_sent_callback, tty); in ipw_write()
222 mutex_unlock(&tty->ipw_tty_mutex); in ipw_write()
226 tty->tx_bytes_queued += count; in ipw_write()
227 mutex_unlock(&tty->ipw_tty_mutex); in ipw_write()
234 struct ipw_tty *tty = linux_tty->driver_data; in ipw_write_room() local
238 if (!tty) in ipw_write_room()
241 if (!tty->port.count) in ipw_write_room()
244 room = IPWIRELESS_TX_QUEUE_SIZE - tty->tx_bytes_queued; in ipw_write_room()
251 static int ipwireless_get_serial_info(struct ipw_tty *tty, in ipwireless_get_serial_info() argument
258 tmp.line = tty->index; in ipwireless_get_serial_info()
269 struct ipw_tty *tty = linux_tty->driver_data; in ipw_chars_in_buffer() local
271 if (!tty) in ipw_chars_in_buffer()
274 if (!tty->port.count) in ipw_chars_in_buffer()
277 return tty->tx_bytes_queued; in ipw_chars_in_buffer()
280 static int get_control_lines(struct ipw_tty *tty) in get_control_lines() argument
282 unsigned int my = tty->control_lines; in get_control_lines()
299 static int set_control_lines(struct ipw_tty *tty, unsigned int set, in set_control_lines() argument
305 ret = ipwireless_set_RTS(tty->hardware, tty->channel_idx, 1); in set_control_lines()
308 if (tty->secondary_channel_idx != -1) { in set_control_lines()
309 ret = ipwireless_set_RTS(tty->hardware, in set_control_lines()
310 tty->secondary_channel_idx, 1); in set_control_lines()
316 ret = ipwireless_set_DTR(tty->hardware, tty->channel_idx, 1); in set_control_lines()
319 if (tty->secondary_channel_idx != -1) { in set_control_lines()
320 ret = ipwireless_set_DTR(tty->hardware, in set_control_lines()
321 tty->secondary_channel_idx, 1); in set_control_lines()
327 ret = ipwireless_set_RTS(tty->hardware, tty->channel_idx, 0); in set_control_lines()
328 if (tty->secondary_channel_idx != -1) { in set_control_lines()
329 ret = ipwireless_set_RTS(tty->hardware, in set_control_lines()
330 tty->secondary_channel_idx, 0); in set_control_lines()
336 ret = ipwireless_set_DTR(tty->hardware, tty->channel_idx, 0); in set_control_lines()
337 if (tty->secondary_channel_idx != -1) { in set_control_lines()
338 ret = ipwireless_set_DTR(tty->hardware, in set_control_lines()
339 tty->secondary_channel_idx, 0); in set_control_lines()
349 struct ipw_tty *tty = linux_tty->driver_data; in ipw_tiocmget() local
352 if (!tty) in ipw_tiocmget()
355 if (!tty->port.count) in ipw_tiocmget()
358 return get_control_lines(tty); in ipw_tiocmget()
365 struct ipw_tty *tty = linux_tty->driver_data; in ipw_tiocmset() local
368 if (!tty) in ipw_tiocmset()
371 if (!tty->port.count) in ipw_tiocmset()
374 return set_control_lines(tty, set, clear); in ipw_tiocmset()
380 struct ipw_tty *tty = linux_tty->driver_data; in ipw_ioctl() local
382 if (!tty) in ipw_ioctl()
385 if (!tty->port.count) in ipw_ioctl()
392 return ipwireless_get_serial_info(tty, (void __user *) arg); in ipw_ioctl()
398 if (tty->tty_type == TTYTYPE_MODEM) { in ipw_ioctl()
403 tty->network); in ipw_ioctl()
415 tty->network); in ipw_ioctl()
516 void ipwireless_tty_free(struct ipw_tty *tty) in ipwireless_tty_free() argument
519 struct ipw_network *network = ttys[tty->index]->network; in ipwireless_tty_free()
521 for (j = tty->index; j < IPWIRELESS_PCMCIA_MINORS; in ipwireless_tty_free()
532 if (ttyj->port.tty != NULL) { in ipwireless_tty_free()
534 tty_vhangup(ttyj->port.tty); in ipwireless_tty_free()
609 int ipwireless_tty_is_modem(struct ipw_tty *tty) in ipwireless_tty_is_modem() argument
611 return tty->tty_type == TTYTYPE_MODEM; in ipwireless_tty_is_modem()
615 ipwireless_tty_notify_control_line_change(struct ipw_tty *tty, in ipwireless_tty_notify_control_line_change() argument
620 unsigned int old_control_lines = tty->control_lines; in ipwireless_tty_notify_control_line_change()
622 tty->control_lines = (tty->control_lines & ~changed_mask) in ipwireless_tty_notify_control_line_change()
630 && !(tty->control_lines & IPW_CONTROL_LINE_DCD) in ipwireless_tty_notify_control_line_change()
631 && tty->port.tty) { in ipwireless_tty_notify_control_line_change()
632 tty_hangup(tty->port.tty); in ipwireless_tty_notify_control_line_change()