Lines Matching refs:port
75 /* port registers */
84 /* This lets uart_insert_char() drop bytes received on a !CREAD port */
179 struct uart_port port;
228 static inline struct rp2_uart_port *port_to_up(struct uart_port *port)
230 return container_of(port, struct rp2_uart_port, port);
269 static unsigned int rp2_uart_tx_empty(struct uart_port *port)
271 struct rp2_uart_port *up = port_to_up(port);
279 spin_lock_irqsave(&up->port.lock, flags);
281 spin_unlock_irqrestore(&up->port.lock, flags);
286 static unsigned int rp2_uart_get_mctrl(struct uart_port *port)
288 struct rp2_uart_port *up = port_to_up(port);
298 static void rp2_uart_set_mctrl(struct uart_port *port, unsigned int mctrl)
300 rp2_rmw(port_to_up(port), RP2_TXRX_CTL,
307 static void rp2_uart_start_tx(struct uart_port *port)
309 rp2_rmw_set(port_to_up(port), RP2_TXRX_CTL, RP2_TXRX_CTL_TXIRQ_m);
312 static void rp2_uart_stop_tx(struct uart_port *port)
314 rp2_rmw_clr(port_to_up(port), RP2_TXRX_CTL, RP2_TXRX_CTL_TXIRQ_m);
317 static void rp2_uart_stop_rx(struct uart_port *port)
319 rp2_rmw_clr(port_to_up(port), RP2_TXRX_CTL, RP2_TXRX_CTL_RXIRQ_m);
322 static void rp2_uart_break_ctl(struct uart_port *port, int break_state)
326 spin_lock_irqsave(&port->lock, flags);
327 rp2_rmw(port_to_up(port), RP2_TXRX_CTL, RP2_TXRX_CTL_BREAK_m,
329 spin_unlock_irqrestore(&port->lock, flags);
332 static void rp2_uart_enable_ms(struct uart_port *port)
334 rp2_rmw_set(port_to_up(port), RP2_TXRX_CTL, RP2_TXRX_CTL_MSRIRQ_m);
373 static void rp2_uart_set_termios(struct uart_port *port,
377 struct rp2_uart_port *up = port_to_up(port);
381 baud = uart_get_baud_rate(port, new, old, 0, port->uartclk / 16);
382 baud_div = uart_get_divisor(port, baud);
387 spin_lock_irqsave(&port->lock, flags);
390 port->ignore_status_mask = (new->c_cflag & CREAD) ? 0 : RP2_DUMMY_READ;
393 uart_update_timeout(port, new->c_cflag, baud);
395 spin_unlock_irqrestore(&port->lock, flags);
401 struct tty_port *port = &up->port.state->port;
408 if (!uart_handle_sysrq_char(&up->port, ch))
409 uart_insert_char(&up->port, byte, 0, ch,
420 uart_insert_char(&up->port, byte,
423 up->port.icount.rx++;
426 spin_unlock(&up->port.lock);
427 tty_flip_buffer_push(port);
428 spin_lock(&up->port.lock);
434 struct circ_buf *xmit = &up->port.state->xmit;
436 if (uart_tx_stopped(&up->port)) {
437 rp2_uart_stop_tx(&up->port);
442 if (up->port.x_char) {
443 writeb(up->port.x_char, up->base + RP2_DATA_BYTE);
444 up->port.x_char = 0;
445 up->port.icount.tx++;
449 rp2_uart_stop_tx(&up->port);
454 up->port.icount.tx++;
458 uart_write_wakeup(&up->port);
465 spin_lock(&up->port.lock);
479 wake_up_interruptible(&up->port.state->port.delta_msr_wait);
481 spin_unlock(&up->port.lock);
520 static int rp2_uart_startup(struct uart_port *port)
522 struct rp2_uart_port *up = port_to_up(port);
534 static void rp2_uart_shutdown(struct uart_port *port)
536 struct rp2_uart_port *up = port_to_up(port);
539 rp2_uart_break_ctl(port, 0);
541 spin_lock_irqsave(&port->lock, flags);
544 spin_unlock_irqrestore(&port->lock, flags);
547 static const char *rp2_uart_type(struct uart_port *port)
549 return (port->type == PORT_RP2) ? "RocketPort 2 UART" : NULL;
552 static void rp2_uart_release_port(struct uart_port *port)
557 static int rp2_uart_request_port(struct uart_port *port)
563 static void rp2_uart_config_port(struct uart_port *port, int flags)
566 port->type = PORT_RP2;
569 static int rp2_uart_verify_port(struct uart_port *port,
648 rp2_uart_set_mctrl(&up->port, 0);
662 uart_remove_one_port(&rp2_uart_driver, &card->ports[i].port);
684 p = &rp->port;
708 "error registering port %d: %d\n", i, rc);