Lines Matching refs:port

78 /* port registers */
87 /* This lets uart_insert_char() drop bytes received on a !CREAD port */
182 struct uart_port port;
232 static inline struct rp2_uart_port *port_to_up(struct uart_port *port)
234 return container_of(port, struct rp2_uart_port, port);
273 static unsigned int rp2_uart_tx_empty(struct uart_port *port)
275 struct rp2_uart_port *up = port_to_up(port);
283 spin_lock_irqsave(&up->port.lock, flags);
285 spin_unlock_irqrestore(&up->port.lock, flags);
290 static unsigned int rp2_uart_get_mctrl(struct uart_port *port)
292 struct rp2_uart_port *up = port_to_up(port);
302 static void rp2_uart_set_mctrl(struct uart_port *port, unsigned int mctrl)
304 rp2_rmw(port_to_up(port), RP2_TXRX_CTL,
311 static void rp2_uart_start_tx(struct uart_port *port)
313 rp2_rmw_set(port_to_up(port), RP2_TXRX_CTL, RP2_TXRX_CTL_TXIRQ_m);
316 static void rp2_uart_stop_tx(struct uart_port *port)
318 rp2_rmw_clr(port_to_up(port), RP2_TXRX_CTL, RP2_TXRX_CTL_TXIRQ_m);
321 static void rp2_uart_stop_rx(struct uart_port *port)
323 rp2_rmw_clr(port_to_up(port), RP2_TXRX_CTL, RP2_TXRX_CTL_RXIRQ_m);
326 static void rp2_uart_break_ctl(struct uart_port *port, int break_state)
330 spin_lock_irqsave(&port->lock, flags);
331 rp2_rmw(port_to_up(port), RP2_TXRX_CTL, RP2_TXRX_CTL_BREAK_m,
333 spin_unlock_irqrestore(&port->lock, flags);
336 static void rp2_uart_enable_ms(struct uart_port *port)
338 rp2_rmw_set(port_to_up(port), RP2_TXRX_CTL, RP2_TXRX_CTL_MSRIRQ_m);
377 static void rp2_uart_set_termios(struct uart_port *port,
381 struct rp2_uart_port *up = port_to_up(port);
385 baud = uart_get_baud_rate(port, new, old, 0, port->uartclk / 16);
386 baud_div = uart_get_divisor(port, baud);
391 spin_lock_irqsave(&port->lock, flags);
394 port->ignore_status_mask = (new->c_cflag & CREAD) ? 0 : RP2_DUMMY_READ;
397 uart_update_timeout(port, new->c_cflag, baud);
399 spin_unlock_irqrestore(&port->lock, flags);
405 struct tty_port *port = &up->port.state->port;
412 if (!uart_handle_sysrq_char(&up->port, ch))
413 uart_insert_char(&up->port, byte, 0, ch,
424 uart_insert_char(&up->port, byte,
427 up->port.icount.rx++;
430 spin_unlock(&up->port.lock);
431 tty_flip_buffer_push(port);
432 spin_lock(&up->port.lock);
438 struct circ_buf *xmit = &up->port.state->xmit;
440 if (uart_tx_stopped(&up->port)) {
441 rp2_uart_stop_tx(&up->port);
446 if (up->port.x_char) {
447 writeb(up->port.x_char, up->base + RP2_DATA_BYTE);
448 up->port.x_char = 0;
449 up->port.icount.tx++;
453 rp2_uart_stop_tx(&up->port);
458 up->port.icount.tx++;
462 uart_write_wakeup(&up->port);
469 spin_lock(&up->port.lock);
483 wake_up_interruptible(&up->port.state->port.delta_msr_wait);
485 spin_unlock(&up->port.lock);
524 static int rp2_uart_startup(struct uart_port *port)
526 struct rp2_uart_port *up = port_to_up(port);
538 static void rp2_uart_shutdown(struct uart_port *port)
540 struct rp2_uart_port *up = port_to_up(port);
543 rp2_uart_break_ctl(port, 0);
545 spin_lock_irqsave(&port->lock, flags);
548 spin_unlock_irqrestore(&port->lock, flags);
551 static const char *rp2_uart_type(struct uart_port *port)
553 return (port->type == PORT_RP2) ? "RocketPort 2 UART" : NULL;
556 static void rp2_uart_release_port(struct uart_port *port)
561 static int rp2_uart_request_port(struct uart_port *port)
567 static void rp2_uart_config_port(struct uart_port *port, int flags)
570 port->type = PORT_RP2;
573 static int rp2_uart_verify_port(struct uart_port *port,
652 rp2_uart_set_mctrl(&up->port, 0);
666 uart_remove_one_port(&rp2_uart_driver, &card->ports[i].port);
695 p = &rp->port;
719 "error registering port %d: %d\n", i, rc);