Lines Matching refs:serial
67 struct usb_serial *serial; in usb_serial_port_get_by_minor() local
75 serial = port->serial; in usb_serial_port_get_by_minor()
76 mutex_lock(&serial->disc_mutex); in usb_serial_port_get_by_minor()
77 if (serial->disconnected) { in usb_serial_port_get_by_minor()
78 mutex_unlock(&serial->disc_mutex); in usb_serial_port_get_by_minor()
81 kref_get(&serial->kref); in usb_serial_port_get_by_minor()
88 static int allocate_minors(struct usb_serial *serial, int num_ports) in allocate_minors() argument
94 dev_dbg(&serial->interface->dev, "%s %d\n", __func__, num_ports); in allocate_minors()
98 port = serial->port[i]; in allocate_minors()
105 serial->minors_reserved = 1; in allocate_minors()
111 idr_remove(&serial_minors, serial->port[j]->minor); in allocate_minors()
116 static void release_minors(struct usb_serial *serial) in release_minors() argument
121 for (i = 0; i < serial->num_ports; ++i) in release_minors()
122 idr_remove(&serial_minors, serial->port[i]->minor); in release_minors()
124 serial->minors_reserved = 0; in release_minors()
129 struct usb_serial *serial; in destroy_serial() local
133 serial = to_usb_serial(kref); in destroy_serial()
136 if (serial->minors_reserved) in destroy_serial()
137 release_minors(serial); in destroy_serial()
139 if (serial->attached && serial->type->release) in destroy_serial()
140 serial->type->release(serial); in destroy_serial()
143 for (i = 0; i < serial->num_port_pointers; ++i) { in destroy_serial()
144 port = serial->port[i]; in destroy_serial()
146 port->serial = NULL; in destroy_serial()
151 usb_put_intf(serial->interface); in destroy_serial()
152 usb_put_dev(serial->dev); in destroy_serial()
153 kfree(serial); in destroy_serial()
156 void usb_serial_put(struct usb_serial *serial) in usb_serial_put() argument
158 kref_put(&serial->kref, destroy_serial); in usb_serial_put()
182 struct usb_serial *serial; in serial_install() local
190 serial = port->serial; in serial_install()
191 if (!try_module_get(serial->type->driver.owner)) in serial_install()
194 retval = usb_autopm_get_interface(serial->interface); in serial_install()
202 mutex_unlock(&serial->disc_mutex); in serial_install()
205 if (serial->type->init_termios) in serial_install()
206 serial->type->init_termios(tty); in serial_install()
213 usb_autopm_put_interface(serial->interface); in serial_install()
215 module_put(serial->type->driver.owner); in serial_install()
217 usb_serial_put(serial); in serial_install()
218 mutex_unlock(&serial->disc_mutex); in serial_install()
226 struct usb_serial *serial = port->serial; in serial_port_activate() local
229 mutex_lock(&serial->disc_mutex); in serial_port_activate()
230 if (serial->disconnected) in serial_port_activate()
233 retval = port->serial->type->open(tty, port); in serial_port_activate()
234 mutex_unlock(&serial->disc_mutex); in serial_port_activate()
265 struct usb_serial_driver *drv = port->serial->type; in serial_port_shutdown()
301 struct usb_serial *serial; in serial_cleanup() local
314 serial = port->serial; in serial_cleanup()
315 owner = serial->type->driver.owner; in serial_cleanup()
317 mutex_lock(&serial->disc_mutex); in serial_cleanup()
318 if (!serial->disconnected) in serial_cleanup()
319 usb_autopm_put_interface(serial->interface); in serial_cleanup()
320 mutex_unlock(&serial->disc_mutex); in serial_cleanup()
322 usb_serial_put(serial); in serial_cleanup()
332 if (port->serial->dev->state == USB_STATE_NOTATTACHED) in serial_write()
337 retval = port->serial->type->write(tty, port, buf, count); in serial_write()
350 return port->serial->type->write_room(tty); in serial_write_room()
356 struct usb_serial *serial = port->serial; in serial_chars_in_buffer() local
360 if (serial->disconnected) in serial_chars_in_buffer()
363 return serial->type->chars_in_buffer(tty); in serial_chars_in_buffer()
369 struct usb_serial *serial = port->serial; in serial_wait_until_sent() local
373 if (!port->serial->type->wait_until_sent) in serial_wait_until_sent()
376 mutex_lock(&serial->disc_mutex); in serial_wait_until_sent()
377 if (!serial->disconnected) in serial_wait_until_sent()
378 port->serial->type->wait_until_sent(tty, timeout); in serial_wait_until_sent()
379 mutex_unlock(&serial->disc_mutex); in serial_wait_until_sent()
388 if (port->serial->type->throttle) in serial_throttle()
389 port->serial->type->throttle(tty); in serial_throttle()
398 if (port->serial->type->unthrottle) in serial_unthrottle()
399 port->serial->type->unthrottle(tty); in serial_unthrottle()
412 if (port->serial->type->tiocmiwait) in serial_ioctl()
413 retval = port->serial->type->tiocmiwait(tty, arg); in serial_ioctl()
416 if (port->serial->type->ioctl) in serial_ioctl()
417 retval = port->serial->type->ioctl(tty, cmd, arg); in serial_ioctl()
429 if (port->serial->type->set_termios) in serial_set_termios()
430 port->serial->type->set_termios(tty, port, old); in serial_set_termios()
441 if (port->serial->type->break_ctl) in serial_break()
442 port->serial->type->break_ctl(tty, break_state); in serial_break()
449 struct usb_serial *serial; in serial_proc_show() local
459 serial = port->serial; in serial_proc_show()
462 if (serial->type->driver.owner) in serial_proc_show()
464 module_name(serial->type->driver.owner)); in serial_proc_show()
466 serial->type->description); in serial_proc_show()
468 le16_to_cpu(serial->dev->descriptor.idVendor), in serial_proc_show()
469 le16_to_cpu(serial->dev->descriptor.idProduct)); in serial_proc_show()
470 seq_printf(m, " num_ports:%d", serial->num_ports); in serial_proc_show()
472 usb_make_path(serial->dev, tmp, sizeof(tmp)); in serial_proc_show()
476 usb_serial_put(serial); in serial_proc_show()
477 mutex_unlock(&serial->disc_mutex); in serial_proc_show()
501 if (port->serial->type->tiocmget) in serial_tiocmget()
502 return port->serial->type->tiocmget(tty); in serial_tiocmget()
513 if (port->serial->type->tiocmset) in serial_tiocmset()
514 return port->serial->type->tiocmset(tty, set, clear); in serial_tiocmset()
525 if (port->serial->type->get_icount) in serial_get_icount()
526 return port->serial->type->get_icount(tty, icount); in serial_get_icount()
603 struct usb_serial *serial; in create_serial() local
605 serial = kzalloc(sizeof(*serial), GFP_KERNEL); in create_serial()
606 if (!serial) in create_serial()
608 serial->dev = usb_get_dev(dev); in create_serial()
609 serial->type = driver; in create_serial()
610 serial->interface = usb_get_intf(interface); in create_serial()
611 kref_init(&serial->kref); in create_serial()
612 mutex_init(&serial->disc_mutex); in create_serial()
613 serial->minors_reserved = 0; in create_serial()
615 return serial; in create_serial()
673 struct usb_serial_driver *drv = p->serial->type; in serial_port_carrier_raised()
684 struct usb_serial_driver *drv = p->serial->type; in serial_port_dtr_rts()
717 struct usb_serial *serial = NULL; in usb_serial_probe() local
752 serial = create_serial(dev, interface, type); in usb_serial_probe()
753 if (!serial) { in usb_serial_probe()
763 retval = type->probe(serial, id); in usb_serial_probe()
767 usb_serial_put(serial); in usb_serial_probe()
851 usb_serial_put(serial); in usb_serial_probe()
864 usb_serial_put(serial); in usb_serial_probe()
875 num_ports = type->calc_num_ports(serial); in usb_serial_probe()
885 serial->num_ports = num_ports; in usb_serial_probe()
886 serial->num_bulk_in = num_bulk_in; in usb_serial_probe()
887 serial->num_bulk_out = num_bulk_out; in usb_serial_probe()
888 serial->num_interrupt_in = num_interrupt_in; in usb_serial_probe()
889 serial->num_interrupt_out = num_interrupt_out; in usb_serial_probe()
900 max_endpoints = max(max_endpoints, (int)serial->num_ports); in usb_serial_probe()
901 serial->num_port_pointers = max_endpoints; in usb_serial_probe()
910 port->serial = serial; in usb_serial_probe()
915 serial->port[i] = port; in usb_serial_probe()
927 port = serial->port[i]; in usb_serial_probe()
928 buffer_size = max_t(int, serial->type->bulk_in_size, in usb_serial_probe()
946 serial->type->read_bulk_callback, in usb_serial_probe()
956 port = serial->port[i]; in usb_serial_probe()
959 buffer_size = serial->type->bulk_out_size; in usb_serial_probe()
978 serial->type->write_bulk_callback, in usb_serial_probe()
986 if (serial->type->read_int_callback) { in usb_serial_probe()
989 port = serial->port[i]; in usb_serial_probe()
1004 serial->type->read_int_callback, port, in usb_serial_probe()
1011 if (serial->type->write_int_callback) { in usb_serial_probe()
1014 port = serial->port[i]; in usb_serial_probe()
1030 serial->type->write_int_callback, port, in usb_serial_probe()
1037 usb_set_intfdata(interface, serial); in usb_serial_probe()
1041 retval = type->attach(serial); in usb_serial_probe()
1044 serial->attached = 1; in usb_serial_probe()
1048 serial->num_ports = 0; in usb_serial_probe()
1052 serial->attached = 1; in usb_serial_probe()
1059 serial->disconnected = 1; in usb_serial_probe()
1061 if (allocate_minors(serial, num_ports)) { in usb_serial_probe()
1068 port = serial->port[i]; in usb_serial_probe()
1078 serial->disconnected = 0; in usb_serial_probe()
1080 usb_serial_console_init(serial->port[0]->minor); in usb_serial_probe()
1086 usb_serial_put(serial); in usb_serial_probe()
1094 struct usb_serial *serial = usb_get_intfdata(interface); in usb_serial_disconnect() local
1099 usb_serial_console_disconnect(serial); in usb_serial_disconnect()
1101 mutex_lock(&serial->disc_mutex); in usb_serial_disconnect()
1103 serial->disconnected = 1; in usb_serial_disconnect()
1104 mutex_unlock(&serial->disc_mutex); in usb_serial_disconnect()
1106 for (i = 0; i < serial->num_ports; ++i) { in usb_serial_disconnect()
1107 port = serial->port[i]; in usb_serial_disconnect()
1119 if (serial->type->disconnect) in usb_serial_disconnect()
1120 serial->type->disconnect(serial); in usb_serial_disconnect()
1123 usb_serial_put(serial); in usb_serial_disconnect()
1129 struct usb_serial *serial = usb_get_intfdata(intf); in usb_serial_suspend() local
1132 serial->suspending = 1; in usb_serial_suspend()
1139 if (serial->type->suspend) { in usb_serial_suspend()
1140 r = serial->type->suspend(serial, message); in usb_serial_suspend()
1142 serial->suspending = 0; in usb_serial_suspend()
1147 for (i = 0; i < serial->num_ports; ++i) in usb_serial_suspend()
1148 usb_serial_port_poison_urbs(serial->port[i]); in usb_serial_suspend()
1154 static void usb_serial_unpoison_port_urbs(struct usb_serial *serial) in usb_serial_unpoison_port_urbs() argument
1158 for (i = 0; i < serial->num_ports; ++i) in usb_serial_unpoison_port_urbs()
1159 usb_serial_port_unpoison_urbs(serial->port[i]); in usb_serial_unpoison_port_urbs()
1164 struct usb_serial *serial = usb_get_intfdata(intf); in usb_serial_resume() local
1167 usb_serial_unpoison_port_urbs(serial); in usb_serial_resume()
1169 serial->suspending = 0; in usb_serial_resume()
1170 if (serial->type->resume) in usb_serial_resume()
1171 rv = serial->type->resume(serial); in usb_serial_resume()
1173 rv = usb_serial_generic_resume(serial); in usb_serial_resume()
1181 struct usb_serial *serial = usb_get_intfdata(intf); in usb_serial_reset_resume() local
1184 usb_serial_unpoison_port_urbs(serial); in usb_serial_reset_resume()
1186 serial->suspending = 0; in usb_serial_reset_resume()
1187 if (serial->type->reset_resume) { in usb_serial_reset_resume()
1188 rv = serial->type->reset_resume(serial); in usb_serial_reset_resume()