Lines Matching refs:port

228 	struct uart_port port;  member
334 "PCH EG20T port[%d] regs:\n", priv->port.line); in port_show_regs()
463 dev_err(priv->port.dev, "Invalid Baud(div=0x%x)\n", div); in pch_uart_hal_set_line()
471 dev_err(priv->port.dev, "Invalid parity(0x%x)\n", parity); in pch_uart_hal_set_line()
476 dev_err(priv->port.dev, "Invalid bits(0x%x)\n", bits); in pch_uart_hal_set_line()
481 dev_err(priv->port.dev, "Invalid STB(0x%x)\n", stb); in pch_uart_hal_set_line()
489 dev_dbg(priv->port.dev, "%s:baud = %u, div = %04x, lcr = %02x (%lu)\n", in pch_uart_hal_set_line()
503 dev_err(priv->port.dev, "%s:Invalid flag(0x%x)\n", in pch_uart_hal_fifo_reset()
523 dev_err(priv->port.dev, "%s:Invalid DMA Mode(0x%x)\n", in pch_uart_hal_set_fifo()
529 dev_err(priv->port.dev, "%s:Invalid FIFO SIZE(0x%x)\n", in pch_uart_hal_set_fifo()
535 dev_err(priv->port.dev, "%s:Invalid TRIGGER(0x%x)\n", in pch_uart_hal_set_fifo()
593 struct uart_port *port = &priv->port; in pch_uart_hal_read() local
602 port->icount.brk++; in pch_uart_hal_read()
603 if (uart_handle_break(port)) in pch_uart_hal_read()
607 if (port->sysrq) { in pch_uart_hal_read()
608 if (uart_handle_sysrq_char(port, rbr)) in pch_uart_hal_read()
645 struct uart_port *port = &priv->port; in push_rx() local
646 struct tty_port *tport = &port->state->port; in push_rx()
657 struct uart_port *port = &priv->port; in pop_tx_x() local
659 if (port->x_char) { in pop_tx_x()
660 dev_dbg(priv->port.dev, "%s:X character send %02x (%lu)\n", in pop_tx_x()
661 __func__, port->x_char, jiffies); in pop_tx_x()
662 buf[0] = port->x_char; in pop_tx_x()
663 port->x_char = 0; in pop_tx_x()
673 struct uart_port *port = &priv->port; in dma_push_rx() local
674 struct tty_port *tport = &port->state->port; in dma_push_rx()
679 dev_warn(port->dev, "Rx overrun: dropping %u bytes\n", in dma_push_rx()
686 port->icount.rx += room; in dma_push_rx()
691 static void pch_free_dma(struct uart_port *port) in pch_free_dma() argument
694 priv = container_of(port, struct eg20t_port, port); in pch_free_dma()
706 dma_free_coherent(port->dev, port->fifosize, priv->rx_buf_virt, in pch_free_dma()
728 static void pch_request_dma(struct uart_port *port) in pch_request_dma() argument
735 container_of(port, struct eg20t_port, port); in pch_request_dma()
746 param->chan_id = priv->port.line * 2; /* Tx = 0, 2, 4, ... */ in pch_request_dma()
748 param->tx_reg = port->mapbase + UART_TX; in pch_request_dma()
751 dev_err(priv->port.dev, "%s:dma_request_channel FAILS(Tx)\n", in pch_request_dma()
760 param->chan_id = priv->port.line * 2 + 1; /* Rx = Tx + 1 */ in pch_request_dma()
762 param->rx_reg = port->mapbase + UART_RX; in pch_request_dma()
765 dev_err(priv->port.dev, "%s:dma_request_channel FAILS(Rx)\n", in pch_request_dma()
773 priv->rx_buf_virt = dma_alloc_coherent(port->dev, port->fifosize, in pch_request_dma()
781 struct uart_port *port = &priv->port; in pch_dma_rx_complete() local
784 dma_sync_sg_for_cpu(port->dev, &priv->sg_rx, 1, DMA_FROM_DEVICE); in pch_dma_rx_complete()
787 tty_flip_buffer_push(&port->state->port); in pch_dma_rx_complete()
796 struct uart_port *port = &priv->port; in pch_dma_tx_complete() local
797 struct circ_buf *xmit = &port->state->xmit; in pch_dma_tx_complete()
803 port->icount.tx += sg_dma_len(sg); in pch_dma_tx_complete()
807 dma_unmap_sg(port->dev, sg, priv->nent, DMA_TO_DEVICE); in pch_dma_tx_complete()
817 struct uart_port *port = &priv->port; in pop_tx() local
818 struct circ_buf *xmit = &port->state->xmit; in pop_tx()
820 if (uart_tx_stopped(port) || uart_circ_empty(xmit) || count >= size) in pop_tx()
833 dev_dbg(priv->port.dev, "%d characters. Remained %d characters.(%lu)\n", in pop_tx()
867 struct uart_port *port = &priv->port; in dma_handle_rx() local
871 priv = container_of(port, struct eg20t_port, port); in dma_handle_rx()
902 struct uart_port *port = &priv->port; in handle_tx() local
903 struct circ_buf *xmit = &port->state->xmit; in handle_tx()
910 dev_info(priv->port.dev, "%s:Tx isn't started. (%lu)\n", in handle_tx()
921 port->icount.tx++; in handle_tx()
931 port->icount.tx += tx_size; in handle_tx()
939 uart_write_wakeup(port); in handle_tx()
947 struct uart_port *port = &priv->port; in dma_handle_tx() local
948 struct circ_buf *xmit = &port->state->xmit; in dma_handle_tx()
961 dev_info(priv->port.dev, "%s:Tx isn't started. (%lu)\n", in dma_handle_tx()
969 dev_dbg(priv->port.dev, "%s:Tx is not completed. (%lu)\n", in dma_handle_tx()
980 port->icount.tx++; in dma_handle_tx()
989 dev_dbg(priv->port.dev, "%s 0 bytes return\n", __func__); in dma_handle_tx()
991 uart_write_wakeup(port); in dma_handle_tx()
1005 dev_dbg(priv->port.dev, "%s num=%d size=%d rem=%d\n", in dma_handle_tx()
1012 dev_err(priv->port.dev, "%s:kzalloc Failed\n", __func__); in dma_handle_tx()
1029 nent = dma_map_sg(port->dev, sg, num, DMA_TO_DEVICE); in dma_handle_tx()
1031 dev_err(priv->port.dev, "%s:dma_map_sg Failed\n", __func__); in dma_handle_tx()
1051 dev_err(priv->port.dev, "%s:dmaengine_prep_slave_sg Failed\n", in dma_handle_tx()
1055 dma_sync_sg_for_device(port->dev, priv->sg_tx_p, nent, DMA_TO_DEVICE); in dma_handle_tx()
1069 struct uart_port *port = &priv->port; in pch_uart_err_ir() local
1070 struct tty_struct *tty = tty_port_tty_get(&port->state->port); in pch_uart_err_ir()
1078 port->icount.frame++; in pch_uart_err_ir()
1083 port->icount.parity++; in pch_uart_err_ir()
1088 port->icount.overrun++; in pch_uart_err_ir()
1162 dev_err(priv->port.dev, "%s:iid=%02x (%lu)\n", __func__, in pch_uart_interrupt()
1177 static unsigned int pch_uart_tx_empty(struct uart_port *port) in pch_uart_tx_empty() argument
1181 priv = container_of(port, struct eg20t_port, port); in pch_uart_tx_empty()
1189 static unsigned int pch_uart_get_mctrl(struct uart_port *port) in pch_uart_get_mctrl() argument
1195 priv = container_of(port, struct eg20t_port, port); in pch_uart_get_mctrl()
1213 static void pch_uart_set_mctrl(struct uart_port *port, unsigned int mctrl) in pch_uart_set_mctrl() argument
1216 struct eg20t_port *priv = container_of(port, struct eg20t_port, port); in pch_uart_set_mctrl()
1232 static void pch_uart_stop_tx(struct uart_port *port) in pch_uart_stop_tx() argument
1235 priv = container_of(port, struct eg20t_port, port); in pch_uart_stop_tx()
1240 static void pch_uart_start_tx(struct uart_port *port) in pch_uart_start_tx() argument
1244 priv = container_of(port, struct eg20t_port, port); in pch_uart_start_tx()
1248 dev_dbg(priv->port.dev, "%s : Tx DMA is NOT empty.\n", in pch_uart_start_tx()
1258 static void pch_uart_stop_rx(struct uart_port *port) in pch_uart_stop_rx() argument
1261 priv = container_of(port, struct eg20t_port, port); in pch_uart_stop_rx()
1268 static void pch_uart_enable_ms(struct uart_port *port) in pch_uart_enable_ms() argument
1271 priv = container_of(port, struct eg20t_port, port); in pch_uart_enable_ms()
1276 static void pch_uart_break_ctl(struct uart_port *port, int ctl) in pch_uart_break_ctl() argument
1281 priv = container_of(port, struct eg20t_port, port); in pch_uart_break_ctl()
1288 static int pch_uart_startup(struct uart_port *port) in pch_uart_startup() argument
1295 priv = container_of(port, struct eg20t_port, port); in pch_uart_startup()
1298 if (port->uartclk) in pch_uart_startup()
1299 priv->uartclk = port->uartclk; in pch_uart_startup()
1301 port->uartclk = priv->uartclk; in pch_uart_startup()
1348 ret = request_irq(priv->port.irq, pch_uart_interrupt, IRQF_SHARED, in pch_uart_startup()
1354 pch_request_dma(port); in pch_uart_startup()
1359 uart_update_timeout(port, CS8, default_baud); in pch_uart_startup()
1364 static void pch_uart_shutdown(struct uart_port *port) in pch_uart_shutdown() argument
1369 priv = container_of(port, struct eg20t_port, port); in pch_uart_shutdown()
1375 dev_err(priv->port.dev, in pch_uart_shutdown()
1378 pch_free_dma(port); in pch_uart_shutdown()
1380 free_irq(priv->port.irq, priv); in pch_uart_shutdown()
1386 static void pch_uart_set_termios(struct uart_port *port, in pch_uart_set_termios() argument
1394 priv = container_of(port, struct eg20t_port, port); in pch_uart_set_termios()
1431 baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk / 16); in pch_uart_set_termios()
1434 spin_lock(&port->lock); in pch_uart_set_termios()
1436 uart_update_timeout(port, termios->c_cflag, baud); in pch_uart_set_termios()
1441 pch_uart_set_mctrl(&priv->port, priv->port.mctrl); in pch_uart_set_termios()
1447 spin_unlock(&port->lock); in pch_uart_set_termios()
1451 static const char *pch_uart_type(struct uart_port *port) in pch_uart_type() argument
1456 static void pch_uart_release_port(struct uart_port *port) in pch_uart_release_port() argument
1460 priv = container_of(port, struct eg20t_port, port); in pch_uart_release_port()
1465 static int pch_uart_request_port(struct uart_port *port) in pch_uart_request_port() argument
1471 priv = container_of(port, struct eg20t_port, port); in pch_uart_request_port()
1481 priv->membase = port->membase = membase; in pch_uart_request_port()
1486 static void pch_uart_config_port(struct uart_port *port, int type) in pch_uart_config_port() argument
1490 priv = container_of(port, struct eg20t_port, port); in pch_uart_config_port()
1492 port->type = priv->port_type; in pch_uart_config_port()
1493 pch_uart_request_port(port); in pch_uart_config_port()
1497 static int pch_uart_verify_port(struct uart_port *port, in pch_uart_verify_port() argument
1502 priv = container_of(port, struct eg20t_port, port); in pch_uart_verify_port()
1504 dev_info(priv->port.dev, in pch_uart_verify_port()
1510 dev_err(priv->port.dev, "%s : PCH DMA is not Loaded.\n", in pch_uart_verify_port()
1515 pch_request_dma(port); in pch_uart_verify_port()
1519 dev_info(priv->port.dev, "PCH UART: %s\n", in pch_uart_verify_port()
1547 if (up->port.flags & UPF_CONS_FLOW) { in wait_for_xmitr()
1565 static int pch_uart_get_poll_char(struct uart_port *port) in pch_uart_get_poll_char() argument
1568 container_of(port, struct eg20t_port, port); in pch_uart_get_poll_char()
1578 static void pch_uart_put_poll_char(struct uart_port *port, in pch_uart_put_poll_char() argument
1583 container_of(port, struct eg20t_port, port); in pch_uart_put_poll_char()
1632 static void pch_console_putchar(struct uart_port *port, int ch) in pch_console_putchar() argument
1635 container_of(port, struct eg20t_port, port); in pch_console_putchar()
1661 if (priv->port.sysrq) { in pch_console_write()
1668 port_locked = spin_trylock(&priv->port.lock); in pch_console_write()
1671 spin_lock(&priv->port.lock); in pch_console_write()
1681 uart_console_write(&priv->port, s, count, pch_console_putchar); in pch_console_write()
1691 spin_unlock(&priv->port.lock); in pch_console_write()
1699 struct uart_port *port; in pch_console_setup() local
1712 port = &pch_uart_ports[co->index]->port; in pch_console_setup()
1714 if (!port || (!port->iobase && !port->membase)) in pch_console_setup()
1717 port->uartclk = pch_uart_get_uartclk(); in pch_console_setup()
1722 return uart_set_options(port, co, baud, parity, bits, flow); in pch_console_setup()
1807 priv->port.dev = &pdev->dev; in pch_uart_init_port()
1808 priv->port.iobase = iobase; in pch_uart_init_port()
1809 priv->port.membase = NULL; in pch_uart_init_port()
1810 priv->port.mapbase = mapbase; in pch_uart_init_port()
1811 priv->port.irq = pdev->irq; in pch_uart_init_port()
1812 priv->port.iotype = UPIO_PORT; in pch_uart_init_port()
1813 priv->port.ops = &pch_uart_ops; in pch_uart_init_port()
1814 priv->port.flags = UPF_BOOT_AUTOCONF; in pch_uart_init_port()
1815 priv->port.fifosize = fifosize; in pch_uart_init_port()
1816 priv->port.line = board->line_no; in pch_uart_init_port()
1821 priv->port.line); in pch_uart_init_port()
1823 spin_lock_init(&priv->port.lock); in pch_uart_init_port()
1832 ret = uart_add_one_port(&pch_uart_driver, &priv->port); in pch_uart_init_port()
1863 uart_remove_one_port(&pch_uart_driver, &priv->port); in pch_uart_exit_port()
1874 pch_uart_ports[priv->port.line] = NULL; in pch_uart_pci_remove()
1886 uart_suspend_port(&pch_uart_driver, &priv->port); in pch_uart_pci_suspend()
1908 uart_resume_port(&pch_uart_driver, &priv->port); in pch_uart_pci_resume()