Lines Matching defs:state

55 static void uart_change_pm(struct uart_state *state,
65 static inline struct uart_port *uart_port_ref(struct uart_state *state)
67 if (atomic_add_unless(&state->refcount, 1, 0))
68 return state->uart_port;
74 if (atomic_dec_and_test(&uport->state->refcount))
75 wake_up(&uport->state->remove_wait);
78 #define uart_port_lock(state, flags) \
80 struct uart_port *__uport = uart_port_ref(state); \
95 static inline struct uart_port *uart_port_check(struct uart_state *state)
97 lockdep_assert_held(&state->port.mutex);
98 return state->uart_port;
114 struct uart_state *state = port->state;
119 BUG_ON(!state);
120 tty_port_tty_wakeup(&state->port);
126 struct uart_state *state = tty->driver_data;
130 port = uart_port_lock(state, flags);
136 static void __uart_start(struct uart_state *state)
138 struct uart_port *port = state->uart_port;
167 struct uart_state *state = tty->driver_data;
171 port = uart_port_lock(state, flags);
172 __uart_start(state);
202 static void uart_change_line_settings(struct tty_struct *tty, struct uart_state *state,
205 struct uart_port *uport = uart_port_check(state);
241 __uart_start(state);
250 static int uart_port_startup(struct tty_struct *tty, struct uart_state *state,
253 struct uart_port *uport = uart_port_check(state);
262 * Make sure the device is in D0 state.
264 uart_change_pm(state, UART_PM_STATE_ON);
274 uart_port_lock(state, flags);
275 if (!state->xmit.buf) {
276 state->xmit.buf = (unsigned char *) page;
277 uart_circ_clear(&state->xmit);
301 uart_change_line_settings(tty, state, NULL);
322 static int uart_startup(struct tty_struct *tty, struct uart_state *state,
325 struct tty_port *port = &state->port;
332 retval = uart_port_startup(tty, state, init_hw);
339 uport = uart_port_check(state);
355 static void uart_shutdown(struct tty_struct *tty, struct uart_state *state)
357 struct uart_port *uport = uart_port_check(state);
358 struct tty_port *port = &state->port;
402 uart_port_lock(state, flags);
403 xmit_buf = state->xmit.buf;
404 state->xmit.buf = NULL;
566 struct uart_state *state = tty->driver_data;
572 circ = &state->xmit;
573 port = uart_port_lock(state, flags);
595 struct uart_state *state = tty->driver_data;
605 if (WARN_ON(!state))
608 port = uart_port_lock(state, flags);
609 circ = &state->xmit;
628 __uart_start(state);
635 struct uart_state *state = tty->driver_data;
640 port = uart_port_lock(state, flags);
641 ret = uart_circ_chars_free(&state->xmit);
648 struct uart_state *state = tty->driver_data;
653 port = uart_port_lock(state, flags);
654 ret = uart_circ_chars_pending(&state->xmit);
661 struct uart_state *state = tty->driver_data;
669 if (WARN_ON(!state))
674 port = uart_port_lock(state, flags);
677 uart_circ_clear(&state->xmit);
681 tty_port_tty_wakeup(&state->port);
704 struct uart_state *state = tty->driver_data;
708 port = uart_port_ref(state);
726 struct uart_state *state = tty->driver_data;
730 port = uart_port_ref(state);
755 struct uart_state *state = tty->driver_data;
759 port = uart_port_ref(state);
784 struct uart_state *state = container_of(port, struct uart_state, port);
792 * Ensure the state we copy is consistent and no hardware changes
796 uport = uart_port_check(state);
828 struct uart_state *state = tty->driver_data;
829 struct tty_port *port = &state->port;
835 struct uart_state *state,
838 struct uart_port *uport = uart_port_check(state);
927 uart_shutdown(tty, state);
1025 uart_change_line_settings(tty, state, NULL);
1028 retval = uart_startup(tty, state, true);
1040 struct uart_state *state = tty->driver_data;
1041 struct tty_port *port = &state->port;
1053 retval = uart_set_info(tty, port, state, ss);
1062 * @state: UART being queried
1066 struct uart_state *state, unsigned int __user *value)
1068 struct uart_port *uport = uart_port_check(state);
1080 ((uart_circ_chars_pending(&state->xmit) > 0) &&
1089 struct uart_state *state = tty->driver_data;
1090 struct tty_port *port = &state->port;
1095 uport = uart_port_check(state);
1113 struct uart_state *state = tty->driver_data;
1114 struct tty_port *port = &state->port;
1119 uport = uart_port_check(state);
1134 struct uart_state *state = tty->driver_data;
1135 struct tty_port *port = &state->port;
1140 uport = uart_port_check(state);
1152 static int uart_do_autoconfig(struct tty_struct *tty, struct uart_state *state)
1154 struct tty_port *port = &state->port;
1169 uport = uart_port_check(state);
1177 uart_shutdown(tty, state);
1196 ret = uart_startup(tty, state, true);
1225 static int uart_wait_modem_status(struct uart_state *state, unsigned long arg)
1228 struct tty_port *port = &state->port;
1236 uport = uart_port_ref(state);
1286 struct uart_state *state = tty->driver_data;
1290 uport = uart_port_ref(state);
1586 struct uart_state *state = tty->driver_data;
1587 struct tty_port *port = &state->port;
1599 ret = uart_do_autoconfig(tty, state);
1617 ret = uart_wait_modem_status(state, arg);
1629 uport = uart_port_check(state);
1643 ret = uart_get_lsr_info(tty, state, uarg);
1655 ret = uart_set_iso7816_config(state->uart_port, uarg);
1659 ret = uart_get_iso7816_config(state->uart_port, uarg);
1676 struct uart_state *state = tty->driver_data;
1678 struct tty_port *port = &state->port;
1683 mutex_lock(&state->port.mutex);
1684 uport = uart_port_check(state);
1687 mutex_unlock(&state->port.mutex);
1693 struct uart_state *state = tty->driver_data;
1699 mutex_lock(&state->port.mutex);
1700 uport = uart_port_check(state);
1729 uart_change_line_settings(tty, state, old_termios);
1745 mutex_unlock(&state->port.mutex);
1755 struct uart_state *state = tty->driver_data;
1757 if (!state) {
1761 state = drv->state + tty->index;
1762 port = &state->port;
1776 struct uart_state *state = container_of(port, struct uart_state, port);
1777 struct uart_port *uport = uart_port_check(state);
1805 uart_circ_clear(&state->xmit);
1806 buf = state->xmit.buf;
1807 state->xmit.buf = NULL;
1812 uart_change_pm(state, UART_PM_STATE_OFF);
1817 struct uart_state *state = tty->driver_data;
1821 port = uart_port_ref(state);
1885 struct uart_state *state = tty->driver_data;
1886 struct tty_port *port = &state->port;
1893 uport = uart_port_check(state);
1898 uart_shutdown(tty, state);
1905 uart_change_pm(state, UART_PM_STATE_OFF);
1915 struct uart_state *state = container_of(port, struct uart_state, port);
1916 struct uart_port *uport = uart_port_check(state);
1938 struct uart_state *state = container_of(port, struct uart_state, port);
1942 uport = uart_port_ref(state);
1962 struct uart_state *state = container_of(port, struct uart_state, port);
1965 uport = uart_port_ref(state);
1975 struct uart_state *state = drv->state + tty->index;
1977 tty->driver_data = state;
1994 struct uart_state *state = tty->driver_data;
1997 retval = tty_port_open(&state->port, tty, filp);
2006 struct uart_state *state = container_of(port, struct uart_state, port);
2010 uport = uart_port_check(state);
2017 ret = uart_startup(tty, state, false);
2041 struct uart_state *state = drv->state + i;
2042 struct tty_port *port = &state->port;
2050 uport = uart_port_check(state);
2068 pm_state = state->pm_state;
2070 uart_change_pm(state, UART_PM_STATE_ON);
2075 uart_change_pm(state, pm_state);
2352 * uart_change_pm - set power state of the port
2354 * @state: port descriptor
2355 * @pm_state: new state
2359 static void uart_change_pm(struct uart_state *state,
2362 struct uart_port *port = uart_port_check(state);
2364 if (state->pm_state != pm_state) {
2366 port->ops->pm(port, pm_state, state->pm_state);
2367 state->pm_state = pm_state;
2388 struct uart_state *state = drv->state + uport->line;
2389 struct tty_port *port = &state->port;
2458 uart_change_pm(state, UART_PM_STATE_OFF);
2468 struct uart_state *state = drv->state + uport->line;
2469 struct tty_port *port = &state->port;
2506 uart_change_pm(state, UART_PM_STATE_ON);
2521 uart_change_pm(state, UART_PM_STATE_ON);
2533 uart_change_line_settings(tty, state, NULL);
2547 uart_shutdown(tty, state);
2603 uart_configure_port(struct uart_driver *drv, struct uart_state *state,
2644 uart_change_pm(state, UART_PM_STATE_ON);
2675 uart_change_pm(state, UART_PM_STATE_OFF);
2684 struct uart_state *state = drv->state + line;
2694 tport = &state->port;
2697 port = uart_port_check(state);
2704 pm_state = state->pm_state;
2705 uart_change_pm(state, UART_PM_STATE_ON);
2710 * e.g. state->xmit is still uninitialized.
2724 uart_change_pm(state, pm_state);
2732 struct uart_state *state = drv->state + line;
2736 port = uart_port_ref(state);
2748 struct uart_state *state = drv->state + line;
2751 port = uart_port_ref(state);
2810 * tty layer, and initialise the core driver per-port state.
2825 BUG_ON(drv->state);
2831 drv->state = kcalloc(drv->nr, sizeof(struct uart_state), GFP_KERNEL);
2832 if (!drv->state)
2857 * Initialise the UART state(s).
2860 struct uart_state *state = drv->state + i;
2861 struct tty_port *port = &state->port;
2872 tty_port_destroy(&drv->state[i].port);
2875 kfree(drv->state);
2899 tty_port_destroy(&drv->state[i].port);
2900 kfree(drv->state);
2901 drv->state = NULL;
3052 struct uart_state *state = container_of(port, struct uart_state, port);
3057 uport = uart_port_check(state);
3069 struct uart_state *state = container_of(port, struct uart_state, port);
3079 uport = uart_port_check(state);
3151 struct uart_state *state;
3160 state = drv->state + uport->line;
3161 port = &state->port;
3164 if (state->uart_port) {
3169 /* Link the port to the driver state table and vice versa */
3170 atomic_set(&state->refcount, 1);
3171 init_waitqueue_head(&state->remove_wait);
3172 state->uart_port = uport;
3173 uport->state = state;
3175 state->pm_state = UART_PM_STATE_UNDEFINED;
3196 uart_configure_port(drv, state, uport);
3248 struct uart_state *state = drv->state + uport->line;
3249 struct tty_port *port = &state->port;
3254 uart_port = uart_port_check(state);
3297 WARN_ON(atomic_dec_return(&state->refcount) < 0);
3298 wait_event(state->remove_wait, !atomic_read(&state->refcount));
3299 state->uart_port = NULL;
3352 struct uart_state *state;
3358 state = drv->state + i;
3359 if (!state->uart_port || !state->uart_port->port_dev)
3362 if (state->uart_port->dev == phys_dev &&
3363 state->uart_port->ctrl_id == ctrl_id)
3364 return serial_core_get_ctrl_dev(state->uart_port->port_dev);
3475 * uart_handle_dcd_change - handle a change of carrier detect state
3483 struct tty_port *port = &uport->state->port;
3510 * uart_handle_cts_change - handle a change of clear-to-send state
3547 * @status: state of the serial port RX buffer (LSR for 8250)
3555 struct tty_port *tport = &port->state->port;
3654 * to get to a defined state with the following properties: