Lines Matching refs:port

24 	struct uart_port port;  member
44 static void cris_serial_port_init(struct uart_port *port, int line);
45 static void etraxfs_uart_stop_rx(struct uart_port *port);
46 static inline void etraxfs_uart_start_tx_bottom(struct uart_port *port);
93 struct uart_port *port; in cris_console_setup() local
101 port = &etraxfs_uart_ports[co->index]->port; in cris_console_setup()
102 console_port = port; in cris_console_setup()
109 cris_serial_port_init(port, co->index); in cris_console_setup()
110 uart_set_options(port, co, baud, parity, bits, flow); in cris_console_setup()
199 static void etraxfs_uart_send_xchar(struct uart_port *port, char ch) in etraxfs_uart_send_xchar() argument
201 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_send_xchar()
215 spin_lock_irqsave(&port->lock, flags); in etraxfs_uart_send_xchar()
217 spin_unlock_irqrestore(&port->lock, flags); in etraxfs_uart_send_xchar()
218 spin_lock_irqsave(&port->lock, flags); in etraxfs_uart_send_xchar()
240 up->port.icount.tx++; in etraxfs_uart_send_xchar()
272 spin_unlock_irqrestore(&port->lock, flags); in etraxfs_uart_send_xchar()
279 static void etraxfs_uart_start_tx(struct uart_port *port) in etraxfs_uart_start_tx() argument
281 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_start_tx()
290 etraxfs_uart_start_tx_bottom(port); in etraxfs_uart_start_tx()
293 static inline void etraxfs_uart_start_tx_bottom(struct uart_port *port) in etraxfs_uart_start_tx_bottom() argument
295 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_start_tx_bottom()
318 static void etraxfs_uart_stop_tx(struct uart_port *port) in etraxfs_uart_stop_tx() argument
320 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_stop_tx()
366 static void etraxfs_uart_stop_rx(struct uart_port *port) in etraxfs_uart_stop_rx() argument
368 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_stop_rx()
376 static void etraxfs_uart_enable_ms(struct uart_port *port) in etraxfs_uart_enable_ms() argument
384 static unsigned int etraxfs_uart_tx_empty(struct uart_port *port) in etraxfs_uart_tx_empty() argument
386 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_tx_empty()
391 spin_lock_irqsave(&up->port.lock, flags); in etraxfs_uart_tx_empty()
396 spin_unlock_irqrestore(&up->port.lock, flags); in etraxfs_uart_tx_empty()
399 static unsigned int etraxfs_uart_get_mctrl(struct uart_port *port) in etraxfs_uart_get_mctrl() argument
401 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_get_mctrl()
424 static void etraxfs_uart_set_mctrl(struct uart_port *port, unsigned int mctrl) in etraxfs_uart_set_mctrl() argument
426 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_set_mctrl()
440 static void etraxfs_uart_break_ctl(struct uart_port *port, int break_state) in etraxfs_uart_break_ctl() argument
442 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_break_ctl()
448 spin_lock_irqsave(&up->port.lock, flags); in etraxfs_uart_break_ctl()
480 spin_unlock_irqrestore(&up->port.lock, flags); in etraxfs_uart_break_ctl()
487 struct circ_buf *xmit = &up->port.state->xmit; in transmit_chars_no_dma()
493 if (uart_circ_empty(xmit) || uart_tx_stopped(&up->port)) { in transmit_chars_no_dma()
514 up->port.icount.tx++; in transmit_chars_no_dma()
521 uart_write_wakeup(&up->port); in transmit_chars_no_dma()
528 struct tty_port *port; in receive_chars_no_dma() local
535 icount = &up->port.icount; in receive_chars_no_dma()
536 port = &up->port.state->port; in receive_chars_no_dma()
568 if (!tty_insert_flip_char(port, stat_din.data, flag)) in receive_chars_no_dma()
572 spin_unlock(&up->port.lock); in receive_chars_no_dma()
573 tty_flip_buffer_push(port); in receive_chars_no_dma()
574 spin_lock(&up->port.lock); in receive_chars_no_dma()
584 spin_lock(&up->port.lock); in ser_interrupt()
608 spin_unlock(&up->port.lock); in ser_interrupt()
613 static int etraxfs_uart_get_poll_char(struct uart_port *port) in etraxfs_uart_get_poll_char() argument
617 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_get_poll_char()
630 static void etraxfs_uart_put_poll_char(struct uart_port *port, in etraxfs_uart_put_poll_char() argument
634 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_put_poll_char()
643 static int etraxfs_uart_startup(struct uart_port *port) in etraxfs_uart_startup() argument
645 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_startup()
651 if (request_irq(etraxfs_uart_ports[port->line]->irq, ser_interrupt, in etraxfs_uart_startup()
652 0, DRV_NAME, etraxfs_uart_ports[port->line])) in etraxfs_uart_startup()
653 panic("irq ser%d", port->line); in etraxfs_uart_startup()
655 spin_lock_irqsave(&up->port.lock, flags); in etraxfs_uart_startup()
659 etraxfs_uart_set_mctrl(&up->port, up->port.mctrl); in etraxfs_uart_startup()
661 spin_unlock_irqrestore(&up->port.lock, flags); in etraxfs_uart_startup()
666 static void etraxfs_uart_shutdown(struct uart_port *port) in etraxfs_uart_shutdown() argument
668 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_shutdown()
671 spin_lock_irqsave(&up->port.lock, flags); in etraxfs_uart_shutdown()
673 etraxfs_uart_stop_tx(port); in etraxfs_uart_shutdown()
674 etraxfs_uart_stop_rx(port); in etraxfs_uart_shutdown()
676 free_irq(etraxfs_uart_ports[port->line]->irq, in etraxfs_uart_shutdown()
677 etraxfs_uart_ports[port->line]); in etraxfs_uart_shutdown()
679 etraxfs_uart_set_mctrl(&up->port, up->port.mctrl); in etraxfs_uart_shutdown()
681 spin_unlock_irqrestore(&up->port.lock, flags); in etraxfs_uart_shutdown()
686 etraxfs_uart_set_termios(struct uart_port *port, struct ktermios *termios, in etraxfs_uart_set_termios() argument
689 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_set_termios()
743 if ((port != console_port) || old) in etraxfs_uart_set_termios()
744 baud = uart_get_baud_rate(port, termios, old, 0, in etraxfs_uart_set_termios()
745 port->uartclk / 8); in etraxfs_uart_set_termios()
797 spin_lock_irqsave(&port->lock, flags); in etraxfs_uart_set_termios()
803 uart_update_timeout(port, termios->c_cflag, port->uartclk/8); in etraxfs_uart_set_termios()
815 if (up->port.state && up->port.state->port.tty && in etraxfs_uart_set_termios()
816 (up->port.state->port.tty->termios.c_iflag & IXON)) { in etraxfs_uart_set_termios()
817 xoff.chr = STOP_CHAR(up->port.state->port.tty); in etraxfs_uart_set_termios()
831 etraxfs_uart_set_mctrl(&up->port, up->port.mctrl); in etraxfs_uart_set_termios()
832 spin_unlock_irqrestore(&up->port.lock, flags); in etraxfs_uart_set_termios()
836 etraxfs_uart_type(struct uart_port *port) in etraxfs_uart_type() argument
841 static void etraxfs_uart_release_port(struct uart_port *port) in etraxfs_uart_release_port() argument
845 static int etraxfs_uart_request_port(struct uart_port *port) in etraxfs_uart_request_port() argument
850 static void etraxfs_uart_config_port(struct uart_port *port, int flags) in etraxfs_uart_config_port() argument
852 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_config_port()
854 up->port.type = PORT_CRIS; in etraxfs_uart_config_port()
880 static void cris_serial_port_init(struct uart_port *port, int line) in cris_serial_port_init() argument
882 struct uart_cris_port *up = (struct uart_cris_port *)port; in cris_serial_port_init()
887 port->line = line; in cris_serial_port_init()
888 spin_lock_init(&port->lock); in cris_serial_port_init()
889 port->ops = &etraxfs_uart_pops; in cris_serial_port_init()
890 port->irq = up->irq; in cris_serial_port_init()
891 port->iobase = (unsigned long) up->regi_ser; in cris_serial_port_init()
892 port->uartclk = 29493000; in cris_serial_port_init()
903 port->fifosize = 255; in cris_serial_port_init()
904 port->flags = UPF_BOOT_AUTOCONF; in cris_serial_port_init()
937 up->port.dev = &pdev->dev; in etraxfs_uart_probe()
938 cris_serial_port_init(&up->port, dev_id); in etraxfs_uart_probe()
941 platform_set_drvdata(pdev, &up->port); in etraxfs_uart_probe()
942 uart_add_one_port(&etraxfs_uart_driver, &up->port); in etraxfs_uart_probe()
949 struct uart_port *port; in etraxfs_uart_remove() local
951 port = platform_get_drvdata(pdev); in etraxfs_uart_remove()
952 uart_remove_one_port(&etraxfs_uart_driver, port); in etraxfs_uart_remove()