Lines Matching refs:port
75 static void bfin_serial_reset_irda(struct uart_port *port);
79 static unsigned int bfin_serial_get_mctrl(struct uart_port *port) in bfin_serial_get_mctrl() argument
81 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_get_mctrl()
92 static void bfin_serial_set_mctrl(struct uart_port *port, unsigned int mctrl) in bfin_serial_set_mctrl() argument
94 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_set_mctrl()
111 struct uart_port *uport = &uart->port; in bfin_serial_mctrl_cts_int()
132 static unsigned int bfin_serial_get_mctrl(struct uart_port *port) in bfin_serial_get_mctrl() argument
137 static void bfin_serial_set_mctrl(struct uart_port *port, unsigned int mctrl) in bfin_serial_set_mctrl() argument
145 static void bfin_serial_stop_tx(struct uart_port *port) in bfin_serial_stop_tx() argument
147 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_stop_tx()
149 struct circ_buf *xmit = &uart->port.state->xmit; in bfin_serial_stop_tx()
158 uart->port.icount.tx += uart->tx_count; in bfin_serial_stop_tx()
173 static void bfin_serial_start_tx(struct uart_port *port) in bfin_serial_start_tx() argument
175 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_start_tx()
176 struct tty_struct *tty = uart->port.state->port.tty; in bfin_serial_start_tx()
183 bfin_serial_reset_irda(port); in bfin_serial_start_tx()
197 static void bfin_serial_stop_rx(struct uart_port *port) in bfin_serial_stop_rx() argument
199 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_stop_rx()
222 uart->port.icount.rx++; in bfin_serial_rx_chars()
226 if (kgdb_connected && kgdboc_port_line == uart->port.line in bfin_serial_rx_chars()
233 if (!uart->port.state) in bfin_serial_rx_chars()
285 uart->port.icount.brk++; in bfin_serial_rx_chars()
286 if (uart_handle_break(&uart->port)) in bfin_serial_rx_chars()
291 uart->port.icount.parity++; in bfin_serial_rx_chars()
293 uart->port.icount.overrun++; in bfin_serial_rx_chars()
295 uart->port.icount.frame++; in bfin_serial_rx_chars()
297 status &= uart->port.read_status_mask; in bfin_serial_rx_chars()
308 if (uart_handle_sysrq_char(&uart->port, ch)) in bfin_serial_rx_chars()
311 uart_insert_char(&uart->port, status, OE, ch, flg); in bfin_serial_rx_chars()
314 tty_flip_buffer_push(&uart->port.state->port); in bfin_serial_rx_chars()
319 struct circ_buf *xmit = &uart->port.state->xmit; in bfin_serial_tx_chars()
321 if (uart_circ_empty(xmit) || uart_tx_stopped(&uart->port)) { in bfin_serial_tx_chars()
335 if (uart->port.x_char) { in bfin_serial_tx_chars()
336 UART_PUT_CHAR(uart, uart->port.x_char); in bfin_serial_tx_chars()
337 uart->port.icount.tx++; in bfin_serial_tx_chars()
338 uart->port.x_char = 0; in bfin_serial_tx_chars()
344 uart->port.icount.tx++; in bfin_serial_tx_chars()
348 uart_write_wakeup(&uart->port); in bfin_serial_tx_chars()
365 spin_lock(&uart->port.lock); in bfin_serial_tx_int()
368 spin_unlock(&uart->port.lock); in bfin_serial_tx_int()
377 struct circ_buf *xmit = &uart->port.state->xmit; in bfin_serial_dma_tx_chars()
381 if (uart_circ_empty(xmit) || uart_tx_stopped(&uart->port)) { in bfin_serial_dma_tx_chars()
387 if (uart->port.x_char) { in bfin_serial_dma_tx_chars()
388 UART_PUT_CHAR(uart, uart->port.x_char); in bfin_serial_dma_tx_chars()
389 uart->port.icount.tx++; in bfin_serial_dma_tx_chars()
390 uart->port.x_char = 0; in bfin_serial_dma_tx_chars()
420 uart->port.icount.rx += in bfin_serial_dma_rx_chars()
425 uart->port.icount.brk++; in bfin_serial_dma_rx_chars()
426 if (uart_handle_break(&uart->port)) in bfin_serial_dma_rx_chars()
431 uart->port.icount.parity++; in bfin_serial_dma_rx_chars()
433 uart->port.icount.overrun++; in bfin_serial_dma_rx_chars()
435 uart->port.icount.frame++; in bfin_serial_dma_rx_chars()
437 status &= uart->port.read_status_mask; in bfin_serial_dma_rx_chars()
453 if (!uart_handle_sysrq_char(&uart->port, uart->rx_dma_buf.buf[i])) in bfin_serial_dma_rx_chars()
454 uart_insert_char(&uart->port, status, OE, in bfin_serial_dma_rx_chars()
459 tty_flip_buffer_push(&uart->port.state->port); in bfin_serial_dma_rx_chars()
508 struct circ_buf *xmit = &uart->port.state->xmit; in bfin_serial_dma_tx_int()
510 spin_lock(&uart->port.lock); in bfin_serial_dma_tx_int()
520 uart->port.icount.tx += uart->tx_count; in bfin_serial_dma_tx_int()
525 uart_write_wakeup(&uart->port); in bfin_serial_dma_tx_int()
531 spin_unlock(&uart->port.lock); in bfin_serial_dma_tx_int()
568 static unsigned int bfin_serial_tx_empty(struct uart_port *port) in bfin_serial_tx_empty() argument
570 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_tx_empty()
580 static void bfin_serial_break_ctl(struct uart_port *port, int break_state) in bfin_serial_break_ctl() argument
582 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_break_ctl()
592 static int bfin_serial_startup(struct uart_port *port) in bfin_serial_startup() argument
594 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_startup()
637 if (kgdboc_port_line == uart->port.line && kgdboc_break_enabled) in bfin_serial_startup()
726 dev_info(port->dev, "Unable to attach BlackFin UART Modem Status interrupt.\n"); in bfin_serial_startup()
739 static void bfin_serial_shutdown(struct uart_port *port) in bfin_serial_shutdown() argument
741 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_shutdown()
752 switch (uart->port.irq) { in bfin_serial_shutdown()
782 bfin_serial_set_termios(struct uart_port *port, struct ktermios *termios, in bfin_serial_set_termios() argument
785 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_set_termios()
833 spin_lock_irqsave(&uart->port.lock, flags); in bfin_serial_set_termios()
835 port->read_status_mask = OE; in bfin_serial_set_termios()
837 port->read_status_mask |= (FE | PE); in bfin_serial_set_termios()
839 port->read_status_mask |= BI; in bfin_serial_set_termios()
844 port->ignore_status_mask = 0; in bfin_serial_set_termios()
846 port->ignore_status_mask |= FE | PE; in bfin_serial_set_termios()
848 port->ignore_status_mask |= BI; in bfin_serial_set_termios()
854 port->ignore_status_mask |= OE; in bfin_serial_set_termios()
857 baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); in bfin_serial_set_termios()
858 quot = uart_get_divisor(port, baud); in bfin_serial_set_termios()
870 dev_warn(port->dev, "timeout waiting for TX buffer empty\n"); in bfin_serial_set_termios()
895 uart_update_timeout(port, termios->c_cflag, baud); in bfin_serial_set_termios()
897 spin_unlock_irqrestore(&uart->port.lock, flags); in bfin_serial_set_termios()
900 static const char *bfin_serial_type(struct uart_port *port) in bfin_serial_type() argument
902 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_type()
904 return uart->port.type == PORT_BFIN ? "BFIN-UART" : NULL; in bfin_serial_type()
910 static void bfin_serial_release_port(struct uart_port *port) in bfin_serial_release_port() argument
917 static int bfin_serial_request_port(struct uart_port *port) in bfin_serial_request_port() argument
925 static void bfin_serial_config_port(struct uart_port *port, int flags) in bfin_serial_config_port() argument
927 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_config_port()
930 bfin_serial_request_port(&uart->port) == 0) in bfin_serial_config_port()
931 uart->port.type = PORT_BFIN; in bfin_serial_config_port()
940 bfin_serial_verify_port(struct uart_port *port, struct serial_struct *ser) in bfin_serial_verify_port() argument
949 static void bfin_serial_set_ldisc(struct uart_port *port, in bfin_serial_set_ldisc() argument
952 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_set_ldisc()
968 static void bfin_serial_reset_irda(struct uart_port *port) in bfin_serial_reset_irda() argument
970 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_reset_irda()
987 static void bfin_serial_poll_put_char(struct uart_port *port, unsigned char chr) in bfin_serial_poll_put_char() argument
989 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_poll_put_char()
998 static int bfin_serial_poll_get_char(struct uart_port *port) in bfin_serial_poll_get_char() argument
1000 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_poll_get_char()
1078 static void bfin_serial_console_putchar(struct uart_port *port, int ch) in bfin_serial_console_putchar() argument
1080 struct bfin_serial_port *uart = (struct bfin_serial_port *)port; in bfin_serial_console_putchar()
1100 spin_lock_irqsave(&uart->port.lock, flags); in bfin_serial_console_write()
1101 uart_console_write(&uart->port, s, count, bfin_serial_console_putchar); in bfin_serial_console_write()
1102 spin_unlock_irqrestore(&uart->port.lock, flags); in bfin_serial_console_write()
1137 return uart_set_options(&uart->port, co, baud, parity, bits, flow); in bfin_serial_console_setup()
1166 if (bfin_earlyprintk_port.port.line != co->index) in bfin_earlyprintk_console_write()
1169 spin_lock_irqsave(&bfin_earlyprintk_port.port.lock, flags); in bfin_earlyprintk_console_write()
1170 uart_console_write(&bfin_earlyprintk_port.port, s, count, in bfin_earlyprintk_console_write()
1172 spin_unlock_irqrestore(&bfin_earlyprintk_port.port.lock, flags); in bfin_earlyprintk_console_write()
1205 return uart_suspend_port(&bfin_serial_reg, &uart->port); in bfin_serial_suspend()
1212 return uart_resume_port(&bfin_serial_reg, &uart->port); in bfin_serial_resume()
1237 if (!(bfin_earlyprintk_port.port.membase in bfin_serial_probe()
1238 && bfin_earlyprintk_port.port.line == pdev->id)) { in bfin_serial_probe()
1256 spin_lock_init(&uart->port.lock); in bfin_serial_probe()
1257 uart->port.uartclk = get_sclk(); in bfin_serial_probe()
1258 uart->port.fifosize = BFIN_UART_TX_FIFO_SIZE; in bfin_serial_probe()
1259 uart->port.ops = &bfin_serial_pops; in bfin_serial_probe()
1260 uart->port.line = pdev->id; in bfin_serial_probe()
1261 uart->port.iotype = UPIO_MEM; in bfin_serial_probe()
1262 uart->port.flags = UPF_BOOT_AUTOCONF; in bfin_serial_probe()
1271 uart->port.membase = ioremap(res->start, resource_size(res)); in bfin_serial_probe()
1272 if (!uart->port.membase) { in bfin_serial_probe()
1277 uart->port.mapbase = res->start; in bfin_serial_probe()
1292 uart->port.irq = uart->rx_irq; in bfin_serial_probe()
1345 uart->port.dev = &pdev->dev; in bfin_serial_probe()
1347 ret = uart_add_one_port(&bfin_serial_reg, &uart->port); in bfin_serial_probe()
1357 iounmap(uart->port.membase); in bfin_serial_probe()
1375 uart_remove_one_port(&bfin_serial_reg, &uart->port); in bfin_serial_remove()
1376 iounmap(uart->port.membase); in bfin_serial_remove()
1445 bfin_earlyprintk_port.port.membase = ioremap(res->start, in bfin_earlyprintk_probe()
1447 if (!bfin_earlyprintk_port.port.membase) { in bfin_earlyprintk_probe()
1452 bfin_earlyprintk_port.port.mapbase = res->start; in bfin_earlyprintk_probe()
1453 bfin_earlyprintk_port.port.line = pdev->id; in bfin_earlyprintk_probe()
1454 bfin_earlyprintk_port.port.uartclk = get_sclk(); in bfin_earlyprintk_probe()
1455 bfin_earlyprintk_port.port.fifosize = BFIN_UART_TX_FIFO_SIZE; in bfin_earlyprintk_probe()
1456 spin_lock_init(&bfin_earlyprintk_port.port.lock); in bfin_earlyprintk_probe()
1480 struct console __init *bfin_earlyserial_init(unsigned int port, in bfin_earlyserial_init() argument
1486 if (port < 0 || port >= BFIN_UART_NR_PORTS) in bfin_earlyserial_init()
1493 snprintf(port_name, 20, DRIVER_NAME ".%d", port); in bfin_earlyserial_init()
1498 if (!bfin_earlyprintk_port.port.membase) in bfin_earlyserial_init()
1509 bfin_early_serial_console.index = port; in bfin_earlyserial_init()
1514 t.c_line = port; in bfin_earlyserial_init()
1515 bfin_serial_set_termios(&bfin_earlyprintk_port.port, &t, &t); in bfin_earlyserial_init()