<4>[ 6390.900177] jason---acm_tty_close <4>[ 6390.903839] jason---tty_port_close_start <4>[ 6397.593231] jason---acm_tty_close <4>[ 6397.597381] jason---tty_port_close_start <4>[ 6397.601684] tty_port_close_start: tty->count = 1 port count = 0. <4>[ 6397.825378] jason--1 ...
unsigned int mctrl); unsigned int (*get_mctrl)(struct uart_port *); void (*stop_tx)(struct uart_port *); void (*start_tx)(struct uart_port *); void (*throttle)(struct uart_port *); void (*unthrottle)(struct uart_port *); void (*send_xchar)(struct ...
unsigned int mctrl);unsigned int (*get_mctrl)(struct uart_port *);void (*stop_tx)(struct uart_port *);void (*start_tx)(struct uart_port *);void (*throttle)(struct uart_port *);void (*unthrottle)(struct uart_port *);void (*send_xchar)(struct uart_port *...
structuart_ops{unsignedint(*tx_empty)(structuart_port *);void(*set_mctrl)(structuart_port *,unsignedintmctrl);unsignedint(*get_mctrl)(structuart_port *);void(*stop_tx)(structuart_port *);void(*start_tx)(structuart_port *);void(*throttle)(structuart_port *);void(*unthrottle)(structu...
.startup=imx_uart_startup,.shutdown=imx_uart_shutdown,.flush_buffer=imx_uart_flush_buffer,.set_termios=imx_uart_set_termios,.type=imx_uart_type,.config_port=imx_uart_config_port,.verify_port=imx_uart_verify_port,#if defined(CONFIG_CONSOLE_POLL).poll_init=imx_uart_poll_init,.poll_get...
close设备的大体流程如图3-8所示: 图3-8 close设备流程 2.4.5. 注销流程 2.4.5.1. 移除uart_port 此接口用于从uart driver上注销一个uart port,该接口在uart driver中的remove函数中调用。uart移除port的流程如图3-9所示: 图3.9 uart移除port流程图 2.4.5.2. 注销uart_driver 此接口在uart driver中调用,用来...
* uart_close -> tty_port_close -> tty_port_close_start , * 设置 tty->closing = 1 ,表明 tty 处于正在关闭的状态。 * n_tty_receive_buf_closing 循环处理每个字符,针对每个字符 * 调用 n_tty_receive_char_closing ,执行以下操作: * 1. 如果 tty 开启了 I_ISTRIP ,将字符最高位清零 ...
static inline void __start_tx(struct uart_port *port) { ... if (serial8250_set_THRI(up)) { //这里会check if (up->bugs & UART_BUG_TXEN) { unsigned char lsr; lsr = serial_in(up, UART_LSR); up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; if (lsr & UART_LSR_THRE) serial...
uart_start(tty); return ret; } 上面代码的意思是把要写的数据拷贝到state的缓冲区里。然后调用uart_start. static void __uart_start(struct tty_struct *tty) { struct uart_state *state = tty->driver_data; struct uart_port *port = state->uart_port; ...
void(*stop_rx)(struct uart_port *); void(*enable_ms)(struct uart_port *); void(*break_ctl)(struct uart_port *,intctl); int(*startup)(struct uart_port *); void(*shutdown)(struct uart_port *); void(*flush_buffer)(struct uart_port *); ...