Lines Matching refs:edge_port

201 static void stop_read(struct edgeport_port *edge_port);
202 static int restart_read(struct edgeport_port *edge_port);
1430 static void handle_new_msr(struct edgeport_port *edge_port, __u8 msr) in handle_new_msr() argument
1435 dev_dbg(&edge_port->port->dev, "%s - %02x\n", __func__, msr); in handle_new_msr()
1439 icount = &edge_port->port->icount; in handle_new_msr()
1450 wake_up_interruptible(&edge_port->port->port.delta_msr_wait); in handle_new_msr()
1454 edge_port->shadow_msr = msr & 0xf0; in handle_new_msr()
1456 tty = tty_port_tty_get(&edge_port->port->port); in handle_new_msr()
1465 static void handle_new_lsr(struct edgeport_port *edge_port, int lsr_data, in handle_new_lsr() argument
1472 dev_dbg(&edge_port->port->dev, "%s - %02x\n", __func__, new_lsr); in handle_new_lsr()
1474 edge_port->shadow_lsr = lsr; in handle_new_lsr()
1485 edge_tty_recv(edge_port->port, &data, 1); in handle_new_lsr()
1488 icount = &edge_port->port->icount; in handle_new_lsr()
1504 struct edgeport_port *edge_port; in edge_interrupt_callback() local
1550 edge_port = usb_get_serial_port_data(port); in edge_interrupt_callback()
1551 if (!edge_port) { in edge_interrupt_callback()
1563 edge_port->lsr_event = 1; in edge_interrupt_callback()
1564 edge_port->lsr_mask = lsr; in edge_interrupt_callback()
1568 handle_new_lsr(edge_port, 0, lsr, 0); in edge_interrupt_callback()
1577 handle_new_msr(edge_port, msr); in edge_interrupt_callback()
1598 struct edgeport_port *edge_port = urb->context; in edge_bulk_in_callback() local
1599 struct device *dev = &edge_port->port->dev; in edge_bulk_in_callback()
1627 port_number = edge_port->port->port_number; in edge_bulk_in_callback()
1629 if (edge_port->lsr_event) { in edge_bulk_in_callback()
1630 edge_port->lsr_event = 0; in edge_bulk_in_callback()
1632 __func__, port_number, edge_port->lsr_mask, *data); in edge_bulk_in_callback()
1633 handle_new_lsr(edge_port, 1, edge_port->lsr_mask, *data); in edge_bulk_in_callback()
1641 if (edge_port->close_pending) in edge_bulk_in_callback()
1645 edge_tty_recv(edge_port->port, data, in edge_bulk_in_callback()
1647 edge_port->port->icount.rx += urb->actual_length; in edge_bulk_in_callback()
1652 spin_lock(&edge_port->ep_lock); in edge_bulk_in_callback()
1653 if (edge_port->ep_read_urb_state == EDGE_READ_URB_RUNNING) in edge_bulk_in_callback()
1655 else if (edge_port->ep_read_urb_state == EDGE_READ_URB_STOPPING) in edge_bulk_in_callback()
1656 edge_port->ep_read_urb_state = EDGE_READ_URB_STOPPED; in edge_bulk_in_callback()
1658 spin_unlock(&edge_port->ep_lock); in edge_bulk_in_callback()
1678 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_bulk_out_callback() local
1682 edge_port->ep_write_urb_in_use = 0; in edge_bulk_out_callback()
1708 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_open() local
1717 if (edge_port == NULL) in edge_open()
1725 status = ti_do_config(edge_port, UMPC_SET_CLR_LOOPBACK, 0); in edge_open()
1742 edge_port->ump_read_timeout = in edge_open()
1782 &edge_port->shadow_msr, 1); in edge_open()
1789 dev_dbg(&port->dev, "ShadowMSR 0x%X\n", edge_port->shadow_msr); in edge_open()
1792 edge_port->shadow_mcr = MCR_RTS | MCR_DTR; in edge_open()
1793 dev_dbg(&port->dev, "ShadowMCR 0x%X\n", edge_port->shadow_mcr); in edge_open()
1795 edge_serial = edge_port->edge_serial; in edge_open()
1833 edge_port->ep_read_urb_state = EDGE_READ_URB_RUNNING; in edge_open()
1834 urb->context = edge_port; in edge_open()
1848 if (edge_port->edge_serial->num_ports_open == 0) in edge_open()
1858 struct edgeport_port *edge_port; in edge_close() local
1864 edge_port = usb_get_serial_port_data(port); in edge_close()
1865 if (edge_serial == NULL || edge_port == NULL) in edge_close()
1870 edge_port->close_pending = 1; in edge_close()
1874 edge_port->ep_write_urb_in_use = 0; in edge_close()
1875 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_close()
1877 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_close()
1885 --edge_port->edge_serial->num_ports_open; in edge_close()
1886 if (edge_port->edge_serial->num_ports_open <= 0) { in edge_close()
1889 edge_port->edge_serial->num_ports_open = 0; in edge_close()
1892 edge_port->close_pending = 0; in edge_close()
1898 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_write() local
1905 if (edge_port == NULL) in edge_write()
1907 if (edge_port->close_pending == 1) in edge_write()
1911 &edge_port->ep_lock); in edge_write()
1920 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_send() local
1923 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_send()
1925 if (edge_port->ep_write_urb_in_use) { in edge_send()
1926 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_send()
1935 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_send()
1939 edge_port->ep_write_urb_in_use = 1; in edge_send()
1941 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_send()
1954 edge_port->ep_write_urb_in_use = 0; in edge_send()
1957 edge_port->port->icount.tx += count; in edge_send()
1968 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_write_room() local
1972 if (edge_port == NULL) in edge_write_room()
1974 if (edge_port->close_pending == 1) in edge_write_room()
1977 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_write_room()
1979 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_write_room()
1988 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_chars_in_buffer() local
1991 if (edge_port == NULL) in edge_chars_in_buffer()
1994 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_chars_in_buffer()
1996 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_chars_in_buffer()
2004 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_tx_empty() local
2007 ret = tx_active(edge_port); in edge_tx_empty()
2017 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_throttle() local
2020 if (edge_port == NULL) in edge_throttle()
2035 stop_read(edge_port); in edge_throttle()
2042 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_unthrottle() local
2045 if (edge_port == NULL) in edge_unthrottle()
2059 status = restart_read(edge_port); in edge_unthrottle()
2068 static void stop_read(struct edgeport_port *edge_port) in stop_read() argument
2072 spin_lock_irqsave(&edge_port->ep_lock, flags); in stop_read()
2074 if (edge_port->ep_read_urb_state == EDGE_READ_URB_RUNNING) in stop_read()
2075 edge_port->ep_read_urb_state = EDGE_READ_URB_STOPPING; in stop_read()
2076 edge_port->shadow_mcr &= ~MCR_RTS; in stop_read()
2078 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in stop_read()
2081 static int restart_read(struct edgeport_port *edge_port) in restart_read() argument
2087 spin_lock_irqsave(&edge_port->ep_lock, flags); in restart_read()
2089 if (edge_port->ep_read_urb_state == EDGE_READ_URB_STOPPED) { in restart_read()
2090 urb = edge_port->port->read_urb; in restart_read()
2093 edge_port->ep_read_urb_state = EDGE_READ_URB_RUNNING; in restart_read()
2094 edge_port->shadow_mcr |= MCR_RTS; in restart_read()
2096 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in restart_read()
2102 struct edgeport_port *edge_port, struct ktermios *old_termios) in change_port_settings() argument
2104 struct device *dev = &edge_port->port->dev; in change_port_settings()
2109 int port_number = edge_port->port->port_number; in change_port_settings()
2124 config->bUartMode = (__u8)(edge_port->bUartMode); in change_port_settings()
2176 restart_read(edge_port); in change_port_settings()
2210 edge_port->baud_rate = baud; in change_port_settings()
2230 status = send_cmd(edge_port->port->serial->dev, UMPC_SET_CONFIG, in change_port_settings()
2242 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_set_termios() local
2252 if (edge_port == NULL) in edge_set_termios()
2255 change_port_settings(tty, edge_port, old_termios); in edge_set_termios()
2262 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_tiocmset() local
2266 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_tiocmset()
2267 mcr = edge_port->shadow_mcr; in edge_tiocmset()
2282 edge_port->shadow_mcr = mcr; in edge_tiocmset()
2283 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_tiocmset()
2285 restore_mcr(edge_port, mcr); in edge_tiocmset()
2292 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_tiocmget() local
2298 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_tiocmget()
2300 msr = edge_port->shadow_msr; in edge_tiocmget()
2301 mcr = edge_port->shadow_mcr; in edge_tiocmget()
2311 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_tiocmget()
2316 static int get_serial_info(struct edgeport_port *edge_port, in get_serial_info() argument
2325 cwait = edge_port->port->port.closing_wait; in get_serial_info()
2332 tmp.line = edge_port->port->minor; in get_serial_info()
2333 tmp.port = edge_port->port->port_number; in get_serial_info()
2336 tmp.xmit_fifo_size = edge_port->port->bulk_out_size; in get_serial_info()
2350 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_ioctl() local
2355 return get_serial_info(edge_port, in edge_ioctl()
2364 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_break() local
2370 status = ti_do_config(edge_port, UMPC_SET_CLR_BREAK, bv); in edge_break()
2410 struct edgeport_port *edge_port; in edge_port_probe() local
2413 edge_port = kzalloc(sizeof(*edge_port), GFP_KERNEL); in edge_port_probe()
2414 if (!edge_port) in edge_port_probe()
2417 spin_lock_init(&edge_port->ep_lock); in edge_port_probe()
2418 edge_port->port = port; in edge_port_probe()
2419 edge_port->edge_serial = usb_get_serial_data(port->serial); in edge_port_probe()
2420 edge_port->bUartMode = default_uart_mode; in edge_port_probe()
2424 edge_port->uart_base = UMPMEM_BASE_UART1; in edge_port_probe()
2425 edge_port->dma_address = UMPD_OEDB1_ADDRESS; in edge_port_probe()
2428 edge_port->uart_base = UMPMEM_BASE_UART2; in edge_port_probe()
2429 edge_port->dma_address = UMPD_OEDB2_ADDRESS; in edge_port_probe()
2439 __func__, port->port_number, edge_port->uart_base, in edge_port_probe()
2440 edge_port->dma_address); in edge_port_probe()
2442 usb_set_serial_port_data(port, edge_port); in edge_port_probe()
2453 kfree(edge_port); in edge_port_probe()
2460 struct edgeport_port *edge_port; in edge_port_remove() local
2462 edge_port = usb_get_serial_port_data(port); in edge_port_remove()
2464 kfree(edge_port); in edge_port_remove()
2475 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in uart_mode_show() local
2477 return sprintf(buf, "%d\n", edge_port->bUartMode); in uart_mode_show()
2484 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in uart_mode_store() local
2490 edge_port->bUartMode = v; in uart_mode_store()