• Home
  • Raw
  • Download

Lines Matching refs:port

80 int usb_serial_generic_open(struct tty_struct *tty, struct usb_serial_port *port)  in usb_serial_generic_open()  argument
85 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_open()
86 port->throttled = 0; in usb_serial_generic_open()
87 port->throttle_req = 0; in usb_serial_generic_open()
88 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_open()
90 if (port->bulk_in_size) in usb_serial_generic_open()
91 result = usb_serial_generic_submit_read_urbs(port, GFP_KERNEL); in usb_serial_generic_open()
97 void usb_serial_generic_close(struct usb_serial_port *port) in usb_serial_generic_close() argument
102 if (port->bulk_out_size) { in usb_serial_generic_close()
103 for (i = 0; i < ARRAY_SIZE(port->write_urbs); ++i) in usb_serial_generic_close()
104 usb_kill_urb(port->write_urbs[i]); in usb_serial_generic_close()
106 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_close()
107 kfifo_reset_out(&port->write_fifo); in usb_serial_generic_close()
108 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_close()
110 if (port->bulk_in_size) { in usb_serial_generic_close()
111 for (i = 0; i < ARRAY_SIZE(port->read_urbs); ++i) in usb_serial_generic_close()
112 usb_kill_urb(port->read_urbs[i]); in usb_serial_generic_close()
117 int usb_serial_generic_prepare_write_buffer(struct usb_serial_port *port, in usb_serial_generic_prepare_write_buffer() argument
120 return kfifo_out_locked(&port->write_fifo, dest, size, &port->lock); in usb_serial_generic_prepare_write_buffer()
132 int usb_serial_generic_write_start(struct usb_serial_port *port, in usb_serial_generic_write_start() argument
140 if (test_and_set_bit_lock(USB_SERIAL_WRITE_BUSY, &port->flags)) in usb_serial_generic_write_start()
143 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_write_start()
144 if (!port->write_urbs_free || !kfifo_len(&port->write_fifo)) { in usb_serial_generic_write_start()
145 clear_bit_unlock(USB_SERIAL_WRITE_BUSY, &port->flags); in usb_serial_generic_write_start()
146 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_write_start()
149 i = (int)find_first_bit(&port->write_urbs_free, in usb_serial_generic_write_start()
150 ARRAY_SIZE(port->write_urbs)); in usb_serial_generic_write_start()
151 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_write_start()
153 urb = port->write_urbs[i]; in usb_serial_generic_write_start()
154 count = port->serial->type->prepare_write_buffer(port, in usb_serial_generic_write_start()
156 port->bulk_out_size); in usb_serial_generic_write_start()
158 usb_serial_debug_data(&port->dev, __func__, count, urb->transfer_buffer); in usb_serial_generic_write_start()
159 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_write_start()
160 port->tx_bytes += count; in usb_serial_generic_write_start()
161 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_write_start()
163 clear_bit(i, &port->write_urbs_free); in usb_serial_generic_write_start()
166 dev_err_console(port, "%s - error submitting urb: %d\n", in usb_serial_generic_write_start()
168 set_bit(i, &port->write_urbs_free); in usb_serial_generic_write_start()
169 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_write_start()
170 port->tx_bytes -= count; in usb_serial_generic_write_start()
171 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_write_start()
173 clear_bit_unlock(USB_SERIAL_WRITE_BUSY, &port->flags); in usb_serial_generic_write_start()
192 struct usb_serial_port *port, const unsigned char *buf, int count) in usb_serial_generic_write() argument
196 if (!port->bulk_out_size) in usb_serial_generic_write()
202 count = kfifo_in_locked(&port->write_fifo, buf, count, &port->lock); in usb_serial_generic_write()
203 result = usb_serial_generic_write_start(port, GFP_ATOMIC); in usb_serial_generic_write()
213 struct usb_serial_port *port = tty->driver_data; in usb_serial_generic_write_room() local
217 if (!port->bulk_out_size) in usb_serial_generic_write_room()
220 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_write_room()
221 room = kfifo_avail(&port->write_fifo); in usb_serial_generic_write_room()
222 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_write_room()
224 dev_dbg(&port->dev, "%s - returns %d\n", __func__, room); in usb_serial_generic_write_room()
230 struct usb_serial_port *port = tty->driver_data; in usb_serial_generic_chars_in_buffer() local
234 if (!port->bulk_out_size) in usb_serial_generic_chars_in_buffer()
237 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_chars_in_buffer()
238 chars = kfifo_len(&port->write_fifo) + port->tx_bytes; in usb_serial_generic_chars_in_buffer()
239 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_chars_in_buffer()
241 dev_dbg(&port->dev, "%s - returns %d\n", __func__, chars); in usb_serial_generic_chars_in_buffer()
248 struct usb_serial_port *port = tty->driver_data; in usb_serial_generic_wait_until_sent() local
264 dev_dbg(&port->dev, "%s - timeout = %u ms, period = %u ms\n", in usb_serial_generic_wait_until_sent()
268 while (!port->serial->type->tx_empty(port)) { in usb_serial_generic_wait_until_sent()
278 static int usb_serial_generic_submit_read_urb(struct usb_serial_port *port, in usb_serial_generic_submit_read_urb() argument
283 if (!test_and_clear_bit(index, &port->read_urbs_free)) in usb_serial_generic_submit_read_urb()
286 dev_dbg(&port->dev, "%s - urb %d\n", __func__, index); in usb_serial_generic_submit_read_urb()
288 res = usb_submit_urb(port->read_urbs[index], mem_flags); in usb_serial_generic_submit_read_urb()
291 dev_err(&port->dev, in usb_serial_generic_submit_read_urb()
295 set_bit(index, &port->read_urbs_free); in usb_serial_generic_submit_read_urb()
302 int usb_serial_generic_submit_read_urbs(struct usb_serial_port *port, in usb_serial_generic_submit_read_urbs() argument
308 for (i = 0; i < ARRAY_SIZE(port->read_urbs); ++i) { in usb_serial_generic_submit_read_urbs()
309 res = usb_serial_generic_submit_read_urb(port, i, mem_flags); in usb_serial_generic_submit_read_urbs()
317 usb_kill_urb(port->read_urbs[i]); in usb_serial_generic_submit_read_urbs()
325 struct usb_serial_port *port = urb->context; in usb_serial_generic_process_read_urb() local
336 if (!port->port.console || !port->sysrq) { in usb_serial_generic_process_read_urb()
337 tty_insert_flip_string(&port->port, ch, urb->actual_length); in usb_serial_generic_process_read_urb()
340 if (!usb_serial_handle_sysrq_char(port, *ch)) in usb_serial_generic_process_read_urb()
341 tty_insert_flip_char(&port->port, *ch, TTY_NORMAL); in usb_serial_generic_process_read_urb()
344 tty_flip_buffer_push(&port->port); in usb_serial_generic_process_read_urb()
350 struct usb_serial_port *port = urb->context; in usb_serial_generic_read_bulk_callback() local
357 for (i = 0; i < ARRAY_SIZE(port->read_urbs); ++i) { in usb_serial_generic_read_bulk_callback()
358 if (urb == port->read_urbs[i]) in usb_serial_generic_read_bulk_callback()
362 dev_dbg(&port->dev, "%s - urb %d, len %d\n", __func__, i, in usb_serial_generic_read_bulk_callback()
366 usb_serial_debug_data(&port->dev, __func__, urb->actual_length, in usb_serial_generic_read_bulk_callback()
368 port->serial->type->process_read_urb(urb); in usb_serial_generic_read_bulk_callback()
373 dev_dbg(&port->dev, "%s - urb stopped: %d\n", in usb_serial_generic_read_bulk_callback()
378 dev_err(&port->dev, "%s - urb stopped: %d\n", in usb_serial_generic_read_bulk_callback()
383 dev_dbg(&port->dev, "%s - nonzero urb status: %d\n", in usb_serial_generic_read_bulk_callback()
395 set_bit(i, &port->read_urbs_free); in usb_serial_generic_read_bulk_callback()
407 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_read_bulk_callback()
408 port->throttled = port->throttle_req; in usb_serial_generic_read_bulk_callback()
409 if (!port->throttled) { in usb_serial_generic_read_bulk_callback()
410 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_read_bulk_callback()
411 usb_serial_generic_submit_read_urb(port, i, GFP_ATOMIC); in usb_serial_generic_read_bulk_callback()
413 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_read_bulk_callback()
421 struct usb_serial_port *port = urb->context; in usb_serial_generic_write_bulk_callback() local
425 for (i = 0; i < ARRAY_SIZE(port->write_urbs); ++i) { in usb_serial_generic_write_bulk_callback()
426 if (port->write_urbs[i] == urb) in usb_serial_generic_write_bulk_callback()
429 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_write_bulk_callback()
430 port->tx_bytes -= urb->transfer_buffer_length; in usb_serial_generic_write_bulk_callback()
431 set_bit(i, &port->write_urbs_free); in usb_serial_generic_write_bulk_callback()
432 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_write_bulk_callback()
440 dev_dbg(&port->dev, "%s - urb stopped: %d\n", in usb_serial_generic_write_bulk_callback()
444 dev_err_console(port, "%s - urb stopped: %d\n", in usb_serial_generic_write_bulk_callback()
448 dev_err_console(port, "%s - nonzero urb status: %d\n", in usb_serial_generic_write_bulk_callback()
454 usb_serial_generic_write_start(port, GFP_ATOMIC); in usb_serial_generic_write_bulk_callback()
455 usb_serial_port_softint(port); in usb_serial_generic_write_bulk_callback()
461 struct usb_serial_port *port = tty->driver_data; in usb_serial_generic_throttle() local
464 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_throttle()
465 port->throttle_req = 1; in usb_serial_generic_throttle()
466 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_throttle()
472 struct usb_serial_port *port = tty->driver_data; in usb_serial_generic_unthrottle() local
475 spin_lock_irq(&port->lock); in usb_serial_generic_unthrottle()
476 was_throttled = port->throttled; in usb_serial_generic_unthrottle()
477 port->throttled = port->throttle_req = 0; in usb_serial_generic_unthrottle()
478 spin_unlock_irq(&port->lock); in usb_serial_generic_unthrottle()
487 usb_serial_generic_submit_read_urbs(port, GFP_KERNEL); in usb_serial_generic_unthrottle()
494 struct usb_serial_port *port = tty->driver_data; in usb_serial_generic_msr_changed() local
503 if (!test_bit(ASYNCB_INITIALIZED, &port->port.flags)) in usb_serial_generic_msr_changed()
506 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_msr_changed()
507 cnow = port->icount; /* atomic copy*/ in usb_serial_generic_msr_changed()
508 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_msr_changed()
522 struct usb_serial_port *port = tty->driver_data; in usb_serial_generic_tiocmiwait() local
527 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_tiocmiwait()
528 cnow = port->icount; /* atomic copy */ in usb_serial_generic_tiocmiwait()
529 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_tiocmiwait()
531 ret = wait_event_interruptible(port->port.delta_msr_wait, in usb_serial_generic_tiocmiwait()
533 if (!ret && !test_bit(ASYNCB_INITIALIZED, &port->port.flags)) in usb_serial_generic_tiocmiwait()
543 struct usb_serial_port *port = tty->driver_data; in usb_serial_generic_get_icount() local
547 spin_lock_irqsave(&port->lock, flags); in usb_serial_generic_get_icount()
548 cnow = port->icount; /* atomic copy */ in usb_serial_generic_get_icount()
549 spin_unlock_irqrestore(&port->lock, flags); in usb_serial_generic_get_icount()
568 int usb_serial_handle_sysrq_char(struct usb_serial_port *port, unsigned int ch) in usb_serial_handle_sysrq_char() argument
570 if (port->sysrq && port->port.console) { in usb_serial_handle_sysrq_char()
571 if (ch && time_before(jiffies, port->sysrq)) { in usb_serial_handle_sysrq_char()
573 port->sysrq = 0; in usb_serial_handle_sysrq_char()
576 port->sysrq = 0; in usb_serial_handle_sysrq_char()
581 int usb_serial_handle_sysrq_char(struct usb_serial_port *port, unsigned int ch) in usb_serial_handle_sysrq_char() argument
588 int usb_serial_handle_break(struct usb_serial_port *port) in usb_serial_handle_break() argument
590 if (!port->sysrq) { in usb_serial_handle_break()
591 port->sysrq = jiffies + HZ*5; in usb_serial_handle_break()
594 port->sysrq = 0; in usb_serial_handle_break()
608 struct tty_port *port = &usb_port->port; in usb_serial_handle_dcd_change() local
623 wake_up_interruptible(&port->open_wait); in usb_serial_handle_dcd_change()
631 struct usb_serial_port *port; in usb_serial_generic_resume() local
635 port = serial->port[i]; in usb_serial_generic_resume()
636 if (!test_bit(ASYNCB_INITIALIZED, &port->port.flags)) in usb_serial_generic_resume()
639 if (port->bulk_in_size) { in usb_serial_generic_resume()
640 r = usb_serial_generic_submit_read_urbs(port, in usb_serial_generic_resume()
646 if (port->bulk_out_size) { in usb_serial_generic_resume()
647 r = usb_serial_generic_write_start(port, GFP_NOIO); in usb_serial_generic_resume()