Lines Matching refs:port
104 #define pmz_debug(fmt, arg...) pr_debug("ttyPZ%d: " fmt, uap->port.line, ## arg)
105 #define pmz_error(fmt, arg...) pr_err("ttyPZ%d: " fmt, uap->port.line, ## arg)
106 #define pmz_info(fmt, arg...) pr_info("ttyPZ%d: " fmt, uap->port.line, ## arg)
234 struct tty_port *port; in pmz_receive_chars() local
239 if (uap->port.state == NULL) { in pmz_receive_chars()
244 port = &uap->port.state->port; in pmz_receive_chars()
267 uap->port.sysrq = jiffies + HZ*5; in pmz_receive_chars()
271 if (uap->port.sysrq) { in pmz_receive_chars()
273 spin_unlock(&uap->port.lock); in pmz_receive_chars()
274 swallow = uart_handle_sysrq_char(&uap->port, ch); in pmz_receive_chars()
275 spin_lock(&uap->port.lock); in pmz_receive_chars()
286 uap->port.icount.rx++; in pmz_receive_chars()
293 uap->port.icount.brk++; in pmz_receive_chars()
294 if (uart_handle_break(&uap->port)) in pmz_receive_chars()
298 uap->port.icount.parity++; in pmz_receive_chars()
300 uap->port.icount.frame++; in pmz_receive_chars()
302 uap->port.icount.overrun++; in pmz_receive_chars()
303 r1 &= uap->port.read_status_mask; in pmz_receive_chars()
312 if (uap->port.ignore_status_mask == 0xff || in pmz_receive_chars()
313 (r1 & uap->port.ignore_status_mask) == 0) { in pmz_receive_chars()
314 tty_insert_flip_char(port, ch, flag); in pmz_receive_chars()
317 tty_insert_flip_char(port, 0, TTY_OVERRUN); in pmz_receive_chars()
350 uap->port.icount.dsr++; in pmz_status_handle()
358 uart_handle_dcd_change(&uap->port, in pmz_status_handle()
361 uart_handle_cts_change(&uap->port, in pmz_status_handle()
364 wake_up_interruptible(&uap->port.state->port.delta_msr_wait); in pmz_status_handle()
415 if (uap->port.x_char) { in pmz_transmit_chars()
417 write_zsdata(uap, uap->port.x_char); in pmz_transmit_chars()
419 uap->port.icount.tx++; in pmz_transmit_chars()
420 uap->port.x_char = 0; in pmz_transmit_chars()
424 if (uap->port.state == NULL) in pmz_transmit_chars()
426 xmit = &uap->port.state->xmit; in pmz_transmit_chars()
428 uart_write_wakeup(&uap->port); in pmz_transmit_chars()
431 if (uart_tx_stopped(&uap->port)) in pmz_transmit_chars()
439 uap->port.icount.tx++; in pmz_transmit_chars()
442 uart_write_wakeup(&uap->port); in pmz_transmit_chars()
464 spin_lock(&uap_a->port.lock); in pmz_interrupt()
488 spin_unlock(&uap_a->port.lock); in pmz_interrupt()
490 tty_flip_buffer_push(&uap->port.state->port); in pmz_interrupt()
495 spin_lock(&uap_b->port.lock); in pmz_interrupt()
513 spin_unlock(&uap_b->port.lock); in pmz_interrupt()
515 tty_flip_buffer_push(&uap->port.state->port); in pmz_interrupt()
529 spin_lock_irqsave(&uap->port.lock, flags); in pmz_peek_status()
531 spin_unlock_irqrestore(&uap->port.lock, flags); in pmz_peek_status()
540 static unsigned int pmz_tx_empty(struct uart_port *port) in pmz_tx_empty() argument
544 status = pmz_peek_status(to_pmz(port)); in pmz_tx_empty()
556 static void pmz_set_mctrl(struct uart_port *port, unsigned int mctrl) in pmz_set_mctrl() argument
558 struct uart_pmac_port *uap = to_pmz(port); in pmz_set_mctrl()
596 static unsigned int pmz_get_mctrl(struct uart_port *port) in pmz_get_mctrl() argument
598 struct uart_pmac_port *uap = to_pmz(port); in pmz_get_mctrl()
620 static void pmz_stop_tx(struct uart_port *port) in pmz_stop_tx() argument
622 to_pmz(port)->flags |= PMACZILOG_FLAG_TX_STOPPED; in pmz_stop_tx()
629 static void pmz_start_tx(struct uart_port *port) in pmz_start_tx() argument
631 struct uart_pmac_port *uap = to_pmz(port); in pmz_start_tx()
648 if (port->x_char) { in pmz_start_tx()
649 write_zsdata(uap, port->x_char); in pmz_start_tx()
651 port->icount.tx++; in pmz_start_tx()
652 port->x_char = 0; in pmz_start_tx()
654 struct circ_buf *xmit = &port->state->xmit; in pmz_start_tx()
661 port->icount.tx++; in pmz_start_tx()
664 uart_write_wakeup(&uap->port); in pmz_start_tx()
676 static void pmz_stop_rx(struct uart_port *port) in pmz_stop_rx() argument
678 struct uart_pmac_port *uap = to_pmz(port); in pmz_stop_rx()
693 static void pmz_enable_ms(struct uart_port *port) in pmz_enable_ms() argument
695 struct uart_pmac_port *uap = to_pmz(port); in pmz_enable_ms()
713 static void pmz_break_ctl(struct uart_port *port, int break_state) in pmz_break_ctl() argument
715 struct uart_pmac_port *uap = to_pmz(port); in pmz_break_ctl()
726 spin_lock_irqsave(&port->lock, flags); in pmz_break_ctl()
734 spin_unlock_irqrestore(&port->lock, flags); in pmz_break_ctl()
906 spin_lock_irqsave(&uap->port.lock, flags); in pmz_irda_reset()
910 spin_unlock_irqrestore(&uap->port.lock, flags); in pmz_irda_reset()
913 spin_lock_irqsave(&uap->port.lock, flags); in pmz_irda_reset()
917 spin_unlock_irqrestore(&uap->port.lock, flags); in pmz_irda_reset()
925 static int pmz_startup(struct uart_port *port) in pmz_startup() argument
927 struct uart_pmac_port *uap = to_pmz(port); in pmz_startup()
939 spin_lock_irqsave(&port->lock, flags); in pmz_startup()
941 spin_unlock_irqrestore(&port->lock, flags); in pmz_startup()
943 sprintf(uap->irq_name, PMACZILOG_NAME"%d", uap->port.line); in pmz_startup()
944 if (request_irq(uap->port.irq, pmz_interrupt, IRQF_SHARED, in pmz_startup()
964 spin_lock_irqsave(&port->lock, flags); in pmz_startup()
966 spin_unlock_irqrestore(&port->lock, flags); in pmz_startup()
973 static void pmz_shutdown(struct uart_port *port) in pmz_shutdown() argument
975 struct uart_pmac_port *uap = to_pmz(port); in pmz_shutdown()
980 spin_lock_irqsave(&port->lock, flags); in pmz_shutdown()
995 spin_unlock_irqrestore(&port->lock, flags); in pmz_shutdown()
998 free_irq(uap->port.irq, uap); in pmz_shutdown()
1000 spin_lock_irqsave(&port->lock, flags); in pmz_shutdown()
1007 spin_unlock_irqrestore(&port->lock, flags); in pmz_shutdown()
1095 uap->port.read_status_mask = Rx_OVR; in pmz_convert_to_zs()
1097 uap->port.read_status_mask |= CRC_ERR | PAR_ERR; in pmz_convert_to_zs()
1099 uap->port.read_status_mask |= BRK_ABRT; in pmz_convert_to_zs()
1101 uap->port.ignore_status_mask = 0; in pmz_convert_to_zs()
1103 uap->port.ignore_status_mask |= CRC_ERR | PAR_ERR; in pmz_convert_to_zs()
1105 uap->port.ignore_status_mask |= BRK_ABRT; in pmz_convert_to_zs()
1107 uap->port.ignore_status_mask |= Rx_OVR; in pmz_convert_to_zs()
1111 uap->port.ignore_status_mask = 0xff; in pmz_convert_to_zs()
1248 static void __pmz_set_termios(struct uart_port *port, struct ktermios *termios, in __pmz_set_termios() argument
1251 struct uart_pmac_port *uap = to_pmz(port); in __pmz_set_termios()
1267 baud = uart_get_baud_rate(port, termios, old, 1200, 4000000); in __pmz_set_termios()
1276 baud = uart_get_baud_rate(port, termios, old, 1200, 230400); in __pmz_set_termios()
1279 if (UART_ENABLE_MS(&uap->port, termios->c_cflag)) { in __pmz_set_termios()
1290 uart_update_timeout(port, termios->c_cflag, baud); in __pmz_set_termios()
1296 static void pmz_set_termios(struct uart_port *port, struct ktermios *termios, in pmz_set_termios() argument
1299 struct uart_pmac_port *uap = to_pmz(port); in pmz_set_termios()
1302 spin_lock_irqsave(&port->lock, flags); in pmz_set_termios()
1308 __pmz_set_termios(port, termios, old); in pmz_set_termios()
1314 spin_unlock_irqrestore(&port->lock, flags); in pmz_set_termios()
1317 static const char *pmz_type(struct uart_port *port) in pmz_type() argument
1319 struct uart_pmac_port *uap = to_pmz(port); in pmz_type()
1331 static void pmz_release_port(struct uart_port *port) in pmz_release_port() argument
1335 static int pmz_request_port(struct uart_port *port) in pmz_request_port() argument
1341 static void pmz_config_port(struct uart_port *port, int flags) in pmz_config_port() argument
1346 static int pmz_verify_port(struct uart_port *port, struct serial_struct *ser) in pmz_verify_port() argument
1353 static int pmz_poll_get_char(struct uart_port *port) in pmz_poll_get_char() argument
1356 container_of(port, struct uart_pmac_port, port); in pmz_poll_get_char()
1369 static void pmz_poll_put_char(struct uart_port *port, unsigned char c) in pmz_poll_put_char() argument
1372 container_of(port, struct uart_pmac_port, port); in pmz_poll_put_char()
1428 uap->port.mapbase = r_ports.start; in pmz_init_port()
1429 uap->port.membase = ioremap(uap->port.mapbase, 0x1000); in pmz_init_port()
1431 uap->control_reg = uap->port.membase; in pmz_init_port()
1508 uap->port.iotype = UPIO_MEM; in pmz_init_port()
1509 uap->port.irq = irq_of_parse_and_map(np, 0); in pmz_init_port()
1510 uap->port.uartclk = ZS_CLOCK; in pmz_init_port()
1511 uap->port.fifosize = 1; in pmz_init_port()
1512 uap->port.ops = &pmz_pops; in pmz_init_port()
1513 uap->port.type = PORT_PMAC_ZILOG; in pmz_init_port()
1514 uap->port.flags = 0; in pmz_init_port()
1522 if (uap->port.irq == 0 && in pmz_init_port()
1526 uap->port.irq = irq_create_mapping(NULL, 64 + 15); in pmz_init_port()
1575 uap->port.dev = &mdev->ofdev.dev; in pmz_attach()
1588 return uart_add_one_port(&pmz_uart_reg, &uap->port); in pmz_attach()
1602 uart_remove_one_port(&pmz_uart_reg, &uap->port); in pmz_detach()
1610 uap->port.dev = NULL; in pmz_detach()
1625 uart_suspend_port(&pmz_uart_reg, &uap->port); in pmz_suspend()
1638 uart_resume_port(&pmz_uart_reg, &uap->port); in pmz_resume()
1689 pmz_ports[count].port.line = count; in pmz_probe()
1690 pmz_ports[count+1].port.line = count+1; in pmz_probe()
1726 uap->port.mapbase = r_ports->start; in pmz_init_port()
1727 uap->port.membase = (unsigned char __iomem *) r_ports->start; in pmz_init_port()
1728 uap->port.iotype = UPIO_MEM; in pmz_init_port()
1729 uap->port.irq = irq; in pmz_init_port()
1730 uap->port.uartclk = ZS_CLOCK; in pmz_init_port()
1731 uap->port.fifosize = 1; in pmz_init_port()
1732 uap->port.ops = &pmz_pops; in pmz_init_port()
1733 uap->port.type = PORT_PMAC_ZILOG; in pmz_init_port()
1734 uap->port.flags = 0; in pmz_init_port()
1736 uap->control_reg = uap->port.membase; in pmz_init_port()
1751 pmz_ports[0].port.line = 0; in pmz_probe()
1761 pmz_ports[1].port.line = 1; in pmz_probe()
1790 uap->port.dev = &pdev->dev; in pmz_attach()
1793 return uart_add_one_port(&pmz_uart_reg, &uap->port); in pmz_attach()
1803 uart_remove_one_port(&pmz_uart_reg, &uap->port); in pmz_detach()
1805 uap->port.dev = NULL; in pmz_detach()
1956 static void pmz_console_putchar(struct uart_port *port, int ch) in pmz_console_putchar() argument
1959 container_of(port, struct uart_pmac_port, port); in pmz_console_putchar()
1976 spin_lock_irqsave(&uap->port.lock, flags); in pmz_console_write()
1982 uart_console_write(&uap->port, s, count, pmz_console_putchar); in pmz_console_write()
1988 spin_unlock_irqrestore(&uap->port.lock, flags); in pmz_console_write()
1997 struct uart_port *port; in pmz_console_setup() local
2027 port = &uap->port; in pmz_console_setup()
2037 spin_lock_init(&port->lock); in pmz_console_setup()
2049 return uart_set_options(port, co, baud, parity, bits, flow); in pmz_console_setup()