Lines Matching refs:uport
60 static int uart_dcd_enabled(struct uart_port *uport) in uart_dcd_enabled() argument
62 return !!(uport->status & UPSTAT_DCD_ENABLE); in uart_dcd_enabled()
72 static inline void uart_port_deref(struct uart_port *uport) in uart_port_deref() argument
74 if (atomic_dec_and_test(&uport->state->refcount)) in uart_port_deref()
75 wake_up(&uport->state->remove_wait); in uart_port_deref()
86 #define uart_port_unlock(uport, flags) \ argument
88 struct uart_port *__uport = uport; \
193 static void uart_port_dtr_rts(struct uart_port *uport, bool active) in uart_port_dtr_rts() argument
196 uart_set_mctrl(uport, TIOCM_DTR | TIOCM_RTS); in uart_port_dtr_rts()
198 uart_clear_mctrl(uport, TIOCM_DTR | TIOCM_RTS); in uart_port_dtr_rts()
205 struct uart_port *uport = uart_port_check(state); in uart_change_line_settings() local
213 if (!tty || uport->type == PORT_UNKNOWN) in uart_change_line_settings()
217 uport->ops->set_termios(uport, termios, old_termios); in uart_change_line_settings()
222 uart_port_lock_irq(uport); in uart_change_line_settings()
224 uport->status |= UPSTAT_CTS_ENABLE; in uart_change_line_settings()
226 uport->status &= ~UPSTAT_CTS_ENABLE; in uart_change_line_settings()
229 uport->status &= ~UPSTAT_DCD_ENABLE; in uart_change_line_settings()
231 uport->status |= UPSTAT_DCD_ENABLE; in uart_change_line_settings()
234 old_hw_stopped = uport->hw_stopped; in uart_change_line_settings()
235 uport->hw_stopped = uart_softcts_mode(uport) && in uart_change_line_settings()
236 !(uport->ops->get_mctrl(uport) & TIOCM_CTS); in uart_change_line_settings()
237 if (uport->hw_stopped != old_hw_stopped) { in uart_change_line_settings()
239 uport->ops->stop_tx(uport); in uart_change_line_settings()
243 uart_port_unlock_irq(uport); in uart_change_line_settings()
249 struct uart_port *uport; in uart_alloc_xmit_buf() local
261 uport = uart_port_lock(state, flags); in uart_alloc_xmit_buf()
266 uart_port_unlock(uport, flags); in uart_alloc_xmit_buf()
268 uart_port_unlock(uport, flags); in uart_alloc_xmit_buf()
282 struct uart_port *uport; in uart_free_xmit_buf() local
292 uport = uart_port_lock(state, flags); in uart_free_xmit_buf()
296 uart_port_unlock(uport, flags); in uart_free_xmit_buf()
308 struct uart_port *uport = uart_port_check(state); in uart_port_startup() local
311 if (uport->type == PORT_UNKNOWN) in uart_port_startup()
323 retval = uport->ops->startup(uport); in uart_port_startup()
325 if (uart_console(uport) && uport->cons->cflag) { in uart_port_startup()
326 tty->termios.c_cflag = uport->cons->cflag; in uart_port_startup()
327 tty->termios.c_ispeed = uport->cons->ispeed; in uart_port_startup()
328 tty->termios.c_ospeed = uport->cons->ospeed; in uart_port_startup()
329 uport->cons->cflag = 0; in uart_port_startup()
330 uport->cons->ispeed = 0; in uart_port_startup()
331 uport->cons->ospeed = 0; in uart_port_startup()
343 uart_port_dtr_rts(uport, true); in uart_port_startup()
361 struct uart_port *uport; in uart_startup() local
374 uport = uart_port_check(state); in uart_startup()
375 if (!uport) in uart_startup()
378 serial_base_port_startup(uport); in uart_startup()
392 struct uart_port *uport = uart_port_check(state); in uart_shutdown() local
401 if (uport) in uart_shutdown()
402 serial_base_port_shutdown(uport); in uart_shutdown()
410 if (uport) { in uart_shutdown()
411 if (uart_console(uport) && tty) { in uart_shutdown()
412 uport->cons->cflag = tty->termios.c_cflag; in uart_shutdown()
413 uport->cons->ispeed = tty->termios.c_ispeed; in uart_shutdown()
414 uport->cons->ospeed = tty->termios.c_ospeed; in uart_shutdown()
418 uart_port_dtr_rts(uport, false); in uart_shutdown()
697 void uart_xchar_out(struct uart_port *uport, int offset) in uart_xchar_out() argument
699 serial_port_out(uport, offset, uport->x_char); in uart_xchar_out()
700 uport->icount.tx++; in uart_xchar_out()
701 uport->x_char = 0; in uart_xchar_out()
792 struct uart_port *uport; in uart_get_info() local
803 uport = uart_port_check(state); in uart_get_info()
804 if (!uport) in uart_get_info()
807 retinfo->type = uport->type; in uart_get_info()
808 retinfo->line = uport->line; in uart_get_info()
809 retinfo->port = uport->iobase; in uart_get_info()
811 retinfo->port_high = (long) uport->iobase >> HIGH_BITS_OFFSET; in uart_get_info()
812 retinfo->irq = uport->irq; in uart_get_info()
813 retinfo->flags = (__force int)uport->flags; in uart_get_info()
814 retinfo->xmit_fifo_size = uport->fifosize; in uart_get_info()
815 retinfo->baud_base = uport->uartclk / 16; in uart_get_info()
820 retinfo->custom_divisor = uport->custom_divisor; in uart_get_info()
821 retinfo->hub6 = uport->hub6; in uart_get_info()
822 retinfo->io_type = uport->iotype; in uart_get_info()
823 retinfo->iomem_reg_shift = uport->regshift; in uart_get_info()
824 retinfo->iomem_base = (void *)(unsigned long)uport->mapbase; in uart_get_info()
845 struct uart_port *uport = uart_port_check(state); in uart_set_info() local
852 if (!uport) in uart_set_info()
866 change_irq = !(uport->flags & UPF_FIXED_PORT) in uart_set_info()
867 && new_info->irq != uport->irq; in uart_set_info()
874 change_port = !(uport->flags & UPF_FIXED_PORT) in uart_set_info()
875 && (new_port != uport->iobase || in uart_set_info()
876 (unsigned long)new_info->iomem_base != uport->mapbase || in uart_set_info()
877 new_info->hub6 != uport->hub6 || in uart_set_info()
878 new_info->io_type != uport->iotype || in uart_set_info()
879 new_info->iomem_reg_shift != uport->regshift || in uart_set_info()
880 new_info->type != uport->type); in uart_set_info()
882 old_flags = uport->flags; in uart_set_info()
884 old_custom_divisor = uport->custom_divisor; in uart_set_info()
886 if (!(uport->flags & UPF_FIXED_PORT)) { in uart_set_info()
897 (new_info->baud_base != uport->uartclk / 16) || in uart_set_info()
901 new_info->xmit_fifo_size != uport->fifosize) || in uart_set_info()
904 uport->flags = ((uport->flags & ~UPF_USR_MASK) | in uart_set_info()
906 uport->custom_divisor = new_info->custom_divisor; in uart_set_info()
919 if (uport->ops->verify_port) in uart_set_info()
920 retval = uport->ops->verify_port(uport, new_info); in uart_set_info()
949 old_iobase = uport->iobase; in uart_set_info()
950 old_mapbase = uport->mapbase; in uart_set_info()
951 old_type = uport->type; in uart_set_info()
952 old_hub6 = uport->hub6; in uart_set_info()
953 old_iotype = uport->iotype; in uart_set_info()
954 old_shift = uport->regshift; in uart_set_info()
959 if (old_type != PORT_UNKNOWN && uport->ops->release_port) in uart_set_info()
960 uport->ops->release_port(uport); in uart_set_info()
962 uport->iobase = new_port; in uart_set_info()
963 uport->type = new_info->type; in uart_set_info()
964 uport->hub6 = new_info->hub6; in uart_set_info()
965 uport->iotype = new_info->io_type; in uart_set_info()
966 uport->regshift = new_info->iomem_reg_shift; in uart_set_info()
967 uport->mapbase = (unsigned long)new_info->iomem_base; in uart_set_info()
972 if (uport->type != PORT_UNKNOWN && uport->ops->request_port) { in uart_set_info()
973 retval = uport->ops->request_port(uport); in uart_set_info()
984 uport->iobase = old_iobase; in uart_set_info()
985 uport->type = old_type; in uart_set_info()
986 uport->hub6 = old_hub6; in uart_set_info()
987 uport->iotype = old_iotype; in uart_set_info()
988 uport->regshift = old_shift; in uart_set_info()
989 uport->mapbase = old_mapbase; in uart_set_info()
992 retval = uport->ops->request_port(uport); in uart_set_info()
998 uport->type = PORT_UNKNOWN; in uart_set_info()
1012 uport->irq = new_info->irq; in uart_set_info()
1013 if (!(uport->flags & UPF_FIXED_PORT)) in uart_set_info()
1014 uport->uartclk = new_info->baud_base * 16; in uart_set_info()
1015 uport->flags = (uport->flags & ~UPF_CHANGE_MASK) | in uart_set_info()
1017 uport->custom_divisor = new_info->custom_divisor; in uart_set_info()
1021 uport->fifosize = new_info->xmit_fifo_size; in uart_set_info()
1025 if (uport->type == PORT_UNKNOWN) in uart_set_info()
1028 if (((old_flags ^ uport->flags) & UPF_SPD_MASK) || in uart_set_info()
1029 old_custom_divisor != uport->custom_divisor) { in uart_set_info()
1034 if (uport->flags & UPF_SPD_MASK) { in uart_set_info()
1035 dev_notice_ratelimited(uport->dev, in uart_set_info()
1083 struct uart_port *uport = uart_port_check(state); in uart_get_lsr_info() local
1086 result = uport->ops->tx_empty(uport); in uart_get_lsr_info()
1094 if (uport->x_char || in uart_get_lsr_info()
1096 !uart_tx_stopped(uport))) in uart_get_lsr_info()
1106 struct uart_port *uport; in uart_tiocmget() local
1111 uport = uart_port_check(state); in uart_tiocmget()
1112 if (!uport || tty_io_error(tty)) in uart_tiocmget()
1115 uart_port_lock_irq(uport); in uart_tiocmget()
1116 result = uport->mctrl; in uart_tiocmget()
1117 result |= uport->ops->get_mctrl(uport); in uart_tiocmget()
1118 uart_port_unlock_irq(uport); in uart_tiocmget()
1128 struct uart_port *uport; in uart_tiocmset() local
1132 uport = uart_port_check(state); in uart_tiocmset()
1133 if (!uport || tty_io_error(tty)) in uart_tiocmset()
1136 uart_update_mctrl(uport, set, clear); in uart_tiocmset()
1145 struct uart_port *uport; in uart_break_ctl() local
1149 uport = uart_port_check(state); in uart_break_ctl()
1150 if (!uport) in uart_break_ctl()
1153 if (uport->type != PORT_UNKNOWN && uport->ops->break_ctl) in uart_break_ctl()
1154 uport->ops->break_ctl(uport, break_state); in uart_break_ctl()
1162 struct uart_port *uport; in uart_do_autoconfig() local
1174 uport = uart_port_check(state); in uart_do_autoconfig()
1175 if (!uport) in uart_do_autoconfig()
1187 if (uport->type != PORT_UNKNOWN && uport->ops->release_port) in uart_do_autoconfig()
1188 uport->ops->release_port(uport); in uart_do_autoconfig()
1191 if (uport->flags & UPF_AUTO_IRQ) in uart_do_autoconfig()
1198 uport->ops->config_port(uport, flags); in uart_do_autoconfig()
1212 static void uart_enable_ms(struct uart_port *uport) in uart_enable_ms() argument
1217 if (uport->ops->enable_ms) in uart_enable_ms()
1218 uport->ops->enable_ms(uport); in uart_enable_ms()
1232 struct uart_port *uport; in uart_wait_modem_status() local
1241 uport = uart_port_ref(state); in uart_wait_modem_status()
1242 if (!uport) in uart_wait_modem_status()
1244 uart_port_lock_irq(uport); in uart_wait_modem_status()
1245 memcpy(&cprev, &uport->icount, sizeof(struct uart_icount)); in uart_wait_modem_status()
1246 uart_enable_ms(uport); in uart_wait_modem_status()
1247 uart_port_unlock_irq(uport); in uart_wait_modem_status()
1251 uart_port_lock_irq(uport); in uart_wait_modem_status()
1252 memcpy(&cnow, &uport->icount, sizeof(struct uart_icount)); in uart_wait_modem_status()
1253 uart_port_unlock_irq(uport); in uart_wait_modem_status()
1277 uart_port_deref(uport); in uart_wait_modem_status()
1293 struct uart_port *uport; in uart_get_icount() local
1295 uport = uart_port_ref(state); in uart_get_icount()
1296 if (!uport) in uart_get_icount()
1298 uart_port_lock_irq(uport); in uart_get_icount()
1299 memcpy(&cnow, &uport->icount, sizeof(struct uart_icount)); in uart_get_icount()
1300 uart_port_unlock_irq(uport); in uart_get_icount()
1301 uart_port_deref(uport); in uart_get_icount()
1593 struct uart_port *uport; in uart_ioctl() local
1634 uport = uart_port_check(state); in uart_ioctl()
1636 if (!uport || tty_io_error(tty)) { in uart_ioctl()
1652 ret = uart_get_rs485_config(uport, uarg); in uart_ioctl()
1656 ret = uart_set_rs485_config(tty, uport, uarg); in uart_ioctl()
1667 if (uport->ops->ioctl) in uart_ioctl()
1668 ret = uport->ops->ioctl(uport, cmd, arg); in uart_ioctl()
1682 struct uart_port *uport; in uart_set_ldisc() local
1689 uport = uart_port_check(state); in uart_set_ldisc()
1690 if (uport && uport->ops->set_ldisc) in uart_set_ldisc()
1691 uport->ops->set_ldisc(uport, &tty->termios); in uart_set_ldisc()
1699 struct uart_port *uport; in uart_set_termios() local
1706 uport = uart_port_check(state); in uart_set_termios()
1707 if (!uport) in uart_set_termios()
1714 if (uport->flags & UPF_SOFT_FLOW) { in uart_set_termios()
1740 uart_clear_mctrl(uport, TIOCM_RTS | TIOCM_DTR); in uart_set_termios()
1747 uart_set_mctrl(uport, mask); in uart_set_termios()
1780 struct uart_port *uport = uart_port_check(state); in uart_tty_port_shutdown() local
1786 if (WARN(!uport, "detached port still initialized!\n")) in uart_tty_port_shutdown()
1789 uart_port_lock_irq(uport); in uart_tty_port_shutdown()
1790 uport->ops->stop_rx(uport); in uart_tty_port_shutdown()
1791 uart_port_unlock_irq(uport); in uart_tty_port_shutdown()
1793 serial_base_port_shutdown(uport); in uart_tty_port_shutdown()
1880 struct uart_port *uport; in uart_hangup() local
1886 uport = uart_port_check(state); in uart_hangup()
1887 WARN(!uport, "hangup of detached port!\n"); in uart_hangup()
1897 if (uport && !uart_console(uport)) in uart_hangup()
1909 struct uart_port *uport = uart_port_check(state); in uart_port_shutdown() local
1920 if (uport) { in uart_port_shutdown()
1922 uport->ops->shutdown(uport); in uart_port_shutdown()
1925 synchronize_irq(uport->irq); in uart_port_shutdown()
1932 struct uart_port *uport; in uart_carrier_raised() local
1935 uport = uart_port_ref(state); in uart_carrier_raised()
1942 if (WARN_ON(!uport)) in uart_carrier_raised()
1944 uart_port_lock_irq(uport); in uart_carrier_raised()
1945 uart_enable_ms(uport); in uart_carrier_raised()
1946 mctrl = uport->ops->get_mctrl(uport); in uart_carrier_raised()
1947 uart_port_unlock_irq(uport); in uart_carrier_raised()
1948 uart_port_deref(uport); in uart_carrier_raised()
1956 struct uart_port *uport; in uart_dtr_rts() local
1958 uport = uart_port_ref(state); in uart_dtr_rts()
1959 if (!uport) in uart_dtr_rts()
1961 uart_port_dtr_rts(uport, active); in uart_dtr_rts()
1962 uart_port_deref(uport); in uart_dtr_rts()
2000 struct uart_port *uport; in uart_port_activate() local
2003 uport = uart_port_check(state); in uart_port_activate()
2004 if (!uport || uport->flags & UPF_DEAD) in uart_port_activate()
2037 struct uart_port *uport; in uart_line_info() local
2044 uport = uart_port_check(state); in uart_line_info()
2045 if (!uport) in uart_line_info()
2048 mmio = uport->iotype >= UPIO_MEM; in uart_line_info()
2050 uport->line, uart_type(uport), in uart_line_info()
2052 mmio ? (unsigned long long)uport->mapbase in uart_line_info()
2053 : (unsigned long long)uport->iobase, in uart_line_info()
2054 uport->irq); in uart_line_info()
2056 if (uport->type == PORT_UNKNOWN) { in uart_line_info()
2065 uart_port_lock_irq(uport); in uart_line_info()
2066 status = uport->ops->get_mctrl(uport); in uart_line_info()
2067 uart_port_unlock_irq(uport); in uart_line_info()
2072 uport->icount.tx, uport->icount.rx); in uart_line_info()
2073 if (uport->icount.frame) in uart_line_info()
2074 seq_printf(m, " fe:%d", uport->icount.frame); in uart_line_info()
2075 if (uport->icount.parity) in uart_line_info()
2076 seq_printf(m, " pe:%d", uport->icount.parity); in uart_line_info()
2077 if (uport->icount.brk) in uart_line_info()
2078 seq_printf(m, " brk:%d", uport->icount.brk); in uart_line_info()
2079 if (uport->icount.overrun) in uart_line_info()
2080 seq_printf(m, " oe:%d", uport->icount.overrun); in uart_line_info()
2081 if (uport->icount.buf_overrun) in uart_line_info()
2082 seq_printf(m, " bo:%d", uport->icount.buf_overrun); in uart_line_info()
2085 if (uport->mctrl & (bit)) \ in uart_line_info()
2378 int uart_suspend_port(struct uart_driver *drv, struct uart_port *uport) in uart_suspend_port() argument
2380 struct uart_state *state = drv->state + uport->line; in uart_suspend_port()
2383 struct uart_match match = {uport, drv}; in uart_suspend_port()
2387 tty_dev = device_find_child(&uport->port_dev->dev, &match, serial_match_port); in uart_suspend_port()
2389 enable_irq_wake(uport->irq); in uart_suspend_port()
2401 if (!console_suspend_enabled && uart_console(uport)) { in uart_suspend_port()
2402 if (uport->ops->start_rx) { in uart_suspend_port()
2403 uart_port_lock_irq(uport); in uart_suspend_port()
2404 uport->ops->stop_rx(uport); in uart_suspend_port()
2405 uart_port_unlock_irq(uport); in uart_suspend_port()
2407 device_set_awake_path(uport->dev); in uart_suspend_port()
2411 uport->suspended = 1; in uart_suspend_port()
2414 const struct uart_ops *ops = uport->ops; in uart_suspend_port()
2421 uart_port_lock_irq(uport); in uart_suspend_port()
2422 ops->stop_tx(uport); in uart_suspend_port()
2423 if (!(uport->rs485.flags & SER_RS485_ENABLED)) in uart_suspend_port()
2424 ops->set_mctrl(uport, 0); in uart_suspend_port()
2426 mctrl = uport->mctrl; in uart_suspend_port()
2427 uport->mctrl = 0; in uart_suspend_port()
2428 ops->stop_rx(uport); in uart_suspend_port()
2429 uart_port_unlock_irq(uport); in uart_suspend_port()
2434 for (tries = 3; !ops->tx_empty(uport) && tries; tries--) in uart_suspend_port()
2437 dev_err(uport->dev, "%s: Unable to drain transmitter\n", in uart_suspend_port()
2438 uport->name); in uart_suspend_port()
2440 ops->shutdown(uport); in uart_suspend_port()
2441 uport->mctrl = mctrl; in uart_suspend_port()
2447 if (uart_console(uport)) in uart_suspend_port()
2448 console_stop(uport->cons); in uart_suspend_port()
2456 int uart_resume_port(struct uart_driver *drv, struct uart_port *uport) in uart_resume_port() argument
2458 struct uart_state *state = drv->state + uport->line; in uart_resume_port()
2461 struct uart_match match = {uport, drv}; in uart_resume_port()
2466 tty_dev = device_find_child(&uport->port_dev->dev, &match, serial_match_port); in uart_resume_port()
2467 if (!uport->suspended && device_may_wakeup(tty_dev)) { in uart_resume_port()
2468 if (irqd_is_wakeup_set(irq_get_irq_data((uport->irq)))) in uart_resume_port()
2469 disable_irq_wake(uport->irq); in uart_resume_port()
2474 uport->suspended = 0; in uart_resume_port()
2479 if (uart_console(uport)) { in uart_resume_port()
2484 termios.c_cflag = uport->cons->cflag; in uart_resume_port()
2485 termios.c_ispeed = uport->cons->ispeed; in uart_resume_port()
2486 termios.c_ospeed = uport->cons->ospeed; in uart_resume_port()
2496 uport->ops->set_termios(uport, &termios, NULL); in uart_resume_port()
2497 if (!console_suspend_enabled && uport->ops->start_rx) { in uart_resume_port()
2498 uart_port_lock_irq(uport); in uart_resume_port()
2499 uport->ops->start_rx(uport); in uart_resume_port()
2500 uart_port_unlock_irq(uport); in uart_resume_port()
2503 console_start(uport->cons); in uart_resume_port()
2507 const struct uart_ops *ops = uport->ops; in uart_resume_port()
2511 uart_port_lock_irq(uport); in uart_resume_port()
2512 if (!(uport->rs485.flags & SER_RS485_ENABLED)) in uart_resume_port()
2513 ops->set_mctrl(uport, 0); in uart_resume_port()
2514 uart_port_unlock_irq(uport); in uart_resume_port()
2515 if (console_suspend_enabled || !uart_console(uport)) { in uart_resume_port()
2519 ret = ops->startup(uport); in uart_resume_port()
2523 uart_rs485_config(uport); in uart_resume_port()
2524 uart_port_lock_irq(uport); in uart_resume_port()
2525 if (!(uport->rs485.flags & SER_RS485_ENABLED)) in uart_resume_port()
2526 ops->set_mctrl(uport, uport->mctrl); in uart_resume_port()
2527 ops->start_tx(uport); in uart_resume_port()
2528 uart_port_unlock_irq(uport); in uart_resume_port()
3039 struct uart_port *uport; in console_show() local
3043 uport = uart_port_check(state); in console_show()
3044 if (uport) in console_show()
3045 console = uart_console_registered(uport); in console_show()
3056 struct uart_port *uport; in console_store() local
3065 uport = uart_port_check(state); in console_store()
3066 if (uport) { in console_store()
3067 oldconsole = uart_console_registered(uport); in console_store()
3069 ret = unregister_console(uport->cons); in console_store()
3071 if (uart_console(uport)) { in console_store()
3072 uport->console_reinit = 1; in console_store()
3073 register_console(uport->cons); in console_store()
3135 static int serial_core_add_one_port(struct uart_driver *drv, struct uart_port *uport) in serial_core_add_one_port() argument
3143 if (uport->line >= drv->nr) in serial_core_add_one_port()
3146 state = drv->state + uport->line; in serial_core_add_one_port()
3158 state->uart_port = uport; in serial_core_add_one_port()
3159 uport->state = state; in serial_core_add_one_port()
3165 if (!uart_console_registered(uport)) in serial_core_add_one_port()
3166 uart_port_spin_lock_init(uport); in serial_core_add_one_port()
3169 uart_port_set_cons(uport, drv->cons); in serial_core_add_one_port()
3170 uport->minor = drv->tty_driver->minor_start + uport->line; in serial_core_add_one_port()
3171 uport->name = kasprintf(GFP_KERNEL, "%s%d", drv->dev_name, in serial_core_add_one_port()
3172 drv->tty_driver->name_base + uport->line); in serial_core_add_one_port()
3173 if (!uport->name) { in serial_core_add_one_port()
3178 if (uport->cons && uport->dev) in serial_core_add_one_port()
3179 of_console_check(uport->dev->of_node, uport->cons->name, uport->line); in serial_core_add_one_port()
3181 tty_port_link_device(port, drv->tty_driver, uport->line); in serial_core_add_one_port()
3182 uart_configure_port(drv, state, uport); in serial_core_add_one_port()
3184 port->console = uart_console(uport); in serial_core_add_one_port()
3187 if (uport->attr_group) in serial_core_add_one_port()
3190 uport->tty_groups = kcalloc(num_groups, sizeof(*uport->tty_groups), in serial_core_add_one_port()
3192 if (!uport->tty_groups) { in serial_core_add_one_port()
3196 uport->tty_groups[0] = &tty_dev_attr_group; in serial_core_add_one_port()
3197 if (uport->attr_group) in serial_core_add_one_port()
3198 uport->tty_groups[1] = uport->attr_group; in serial_core_add_one_port()
3201 uport->flags &= ~UPF_DEAD; in serial_core_add_one_port()
3208 uport->line, uport->dev, &uport->port_dev->dev, port, in serial_core_add_one_port()
3209 uport->tty_groups); in serial_core_add_one_port()
3213 uport->flags |= UPF_DEAD; in serial_core_add_one_port()
3214 dev_err(uport->dev, "Cannot register tty device on line %d\n", in serial_core_add_one_port()
3215 uport->line); in serial_core_add_one_port()
3236 struct uart_port *uport) in serial_core_remove_one_port() argument
3238 struct uart_state *state = drv->state + uport->line; in serial_core_remove_one_port()
3245 if (uart_port != uport) in serial_core_remove_one_port()
3246 dev_alert(uport->dev, "Removing wrong port: %p != %p\n", in serial_core_remove_one_port()
3247 uart_port, uport); in serial_core_remove_one_port()
3258 tty_port_unregister_device(port, drv->tty_driver, uport->line); in serial_core_remove_one_port()
3269 if (uart_console(uport)) in serial_core_remove_one_port()
3270 unregister_console(uport->cons); in serial_core_remove_one_port()
3275 if (uport->type != PORT_UNKNOWN && uport->ops->release_port) in serial_core_remove_one_port()
3276 uport->ops->release_port(uport); in serial_core_remove_one_port()
3277 kfree(uport->tty_groups); in serial_core_remove_one_port()
3278 kfree(uport->name); in serial_core_remove_one_port()
3283 uport->type = PORT_UNKNOWN; in serial_core_remove_one_port()
3284 uport->port_dev = NULL; in serial_core_remove_one_port()
3473 void uart_handle_dcd_change(struct uart_port *uport, bool active) in uart_handle_dcd_change() argument
3475 struct tty_port *port = &uport->state->port; in uart_handle_dcd_change()
3479 lockdep_assert_held_once(&uport->lock); in uart_handle_dcd_change()
3490 uport->icount.dcd++; in uart_handle_dcd_change()
3492 if (uart_dcd_enabled(uport)) { in uart_handle_dcd_change()
3508 void uart_handle_cts_change(struct uart_port *uport, bool active) in uart_handle_cts_change() argument
3510 lockdep_assert_held_once(&uport->lock); in uart_handle_cts_change()
3512 uport->icount.cts++; in uart_handle_cts_change()
3514 if (uart_softcts_mode(uport)) { in uart_handle_cts_change()
3515 if (uport->hw_stopped) { in uart_handle_cts_change()
3517 uport->hw_stopped = false; in uart_handle_cts_change()
3518 uport->ops->start_tx(uport); in uart_handle_cts_change()
3519 uart_write_wakeup(uport); in uart_handle_cts_change()
3523 uport->hw_stopped = true; in uart_handle_cts_change()
3524 uport->ops->stop_tx(uport); in uart_handle_cts_change()