Lines Matching refs:edge_port

220 static void stop_read(struct edgeport_port *edge_port);
221 static int restart_read(struct edgeport_port *edge_port);
1551 static void handle_new_msr(struct edgeport_port *edge_port, u8 msr) in handle_new_msr() argument
1556 dev_dbg(&edge_port->port->dev, "%s - %02x\n", __func__, msr); in handle_new_msr()
1560 icount = &edge_port->port->icount; in handle_new_msr()
1571 wake_up_interruptible(&edge_port->port->port.delta_msr_wait); in handle_new_msr()
1575 edge_port->shadow_msr = msr & 0xf0; in handle_new_msr()
1577 tty = tty_port_tty_get(&edge_port->port->port); in handle_new_msr()
1586 static void handle_new_lsr(struct edgeport_port *edge_port, int lsr_data, in handle_new_lsr() argument
1593 dev_dbg(&edge_port->port->dev, "%s - %02x\n", __func__, new_lsr); in handle_new_lsr()
1595 edge_port->shadow_lsr = lsr; in handle_new_lsr()
1606 edge_tty_recv(edge_port->port, &data, 1); in handle_new_lsr()
1609 icount = &edge_port->port->icount; in handle_new_lsr()
1624 struct edgeport_port *edge_port; in edge_interrupt_callback() local
1676 edge_port = usb_get_serial_port_data(port); in edge_interrupt_callback()
1677 if (!edge_port) { in edge_interrupt_callback()
1690 edge_port->lsr_event = 1; in edge_interrupt_callback()
1691 edge_port->lsr_mask = lsr; in edge_interrupt_callback()
1695 handle_new_lsr(edge_port, 0, lsr, 0); in edge_interrupt_callback()
1704 handle_new_msr(edge_port, msr); in edge_interrupt_callback()
1725 struct edgeport_port *edge_port = urb->context; in edge_bulk_in_callback() local
1726 struct device *dev = &edge_port->port->dev; in edge_bulk_in_callback()
1755 port_number = edge_port->port->port_number; in edge_bulk_in_callback()
1757 if (urb->actual_length > 0 && edge_port->lsr_event) { in edge_bulk_in_callback()
1758 edge_port->lsr_event = 0; in edge_bulk_in_callback()
1760 __func__, port_number, edge_port->lsr_mask, *data); in edge_bulk_in_callback()
1761 handle_new_lsr(edge_port, 1, edge_port->lsr_mask, *data); in edge_bulk_in_callback()
1769 if (edge_port->close_pending) in edge_bulk_in_callback()
1773 edge_tty_recv(edge_port->port, data, in edge_bulk_in_callback()
1775 edge_port->port->icount.rx += urb->actual_length; in edge_bulk_in_callback()
1780 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_bulk_in_callback()
1781 if (edge_port->ep_read_urb_state == EDGE_READ_URB_RUNNING) in edge_bulk_in_callback()
1783 else if (edge_port->ep_read_urb_state == EDGE_READ_URB_STOPPING) in edge_bulk_in_callback()
1784 edge_port->ep_read_urb_state = EDGE_READ_URB_STOPPED; in edge_bulk_in_callback()
1786 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_bulk_in_callback()
1806 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_bulk_out_callback() local
1810 edge_port->ep_write_urb_in_use = 0; in edge_bulk_out_callback()
1836 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_open() local
1844 if (edge_port == NULL) in edge_open()
1850 status = ti_do_config(edge_port, UMPC_SET_CLR_LOOPBACK, 0); in edge_open()
1867 edge_port->ump_read_timeout = in edge_open()
1903 status = read_port_cmd(port, UMPC_READ_MSR, 0, &edge_port->shadow_msr, 1); in edge_open()
1910 dev_dbg(&port->dev, "ShadowMSR 0x%X\n", edge_port->shadow_msr); in edge_open()
1913 edge_port->shadow_mcr = MCR_RTS | MCR_DTR; in edge_open()
1914 dev_dbg(&port->dev, "ShadowMCR 0x%X\n", edge_port->shadow_mcr); in edge_open()
1916 edge_serial = edge_port->edge_serial; in edge_open()
1941 edge_port->ep_read_urb_state = EDGE_READ_URB_RUNNING; in edge_open()
1942 urb->context = edge_port; in edge_open()
1956 if (edge_port->edge_serial->num_ports_open == 0) in edge_open()
1966 struct edgeport_port *edge_port; in edge_close() local
1970 edge_port = usb_get_serial_port_data(port); in edge_close()
1971 if (edge_serial == NULL || edge_port == NULL) in edge_close()
1978 edge_port->close_pending = 1; in edge_close()
1982 edge_port->ep_write_urb_in_use = 0; in edge_close()
1983 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_close()
1985 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_close()
1991 --edge_port->edge_serial->num_ports_open; in edge_close()
1992 if (edge_port->edge_serial->num_ports_open <= 0) { in edge_close()
1995 edge_port->edge_serial->num_ports_open = 0; in edge_close()
1998 edge_port->close_pending = 0; in edge_close()
2004 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_write() local
2011 if (edge_port == NULL) in edge_write()
2013 if (edge_port->close_pending == 1) in edge_write()
2017 &edge_port->ep_lock); in edge_write()
2026 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_send() local
2029 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_send()
2031 if (edge_port->ep_write_urb_in_use) { in edge_send()
2032 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_send()
2041 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_send()
2045 edge_port->ep_write_urb_in_use = 1; in edge_send()
2047 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_send()
2060 edge_port->ep_write_urb_in_use = 0; in edge_send()
2063 edge_port->port->icount.tx += count; in edge_send()
2076 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_write_room() local
2080 if (edge_port == NULL) in edge_write_room()
2082 if (edge_port->close_pending == 1) in edge_write_room()
2085 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_write_room()
2087 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_write_room()
2096 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_chars_in_buffer() local
2099 if (edge_port == NULL) in edge_chars_in_buffer()
2102 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_chars_in_buffer()
2104 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_chars_in_buffer()
2112 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_tx_empty() local
2115 ret = tx_active(edge_port); in edge_tx_empty()
2125 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_throttle() local
2128 if (edge_port == NULL) in edge_throttle()
2145 stop_read(edge_port); in edge_throttle()
2152 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_unthrottle() local
2155 if (edge_port == NULL) in edge_unthrottle()
2171 status = restart_read(edge_port); in edge_unthrottle()
2180 static void stop_read(struct edgeport_port *edge_port) in stop_read() argument
2184 spin_lock_irqsave(&edge_port->ep_lock, flags); in stop_read()
2186 if (edge_port->ep_read_urb_state == EDGE_READ_URB_RUNNING) in stop_read()
2187 edge_port->ep_read_urb_state = EDGE_READ_URB_STOPPING; in stop_read()
2188 edge_port->shadow_mcr &= ~MCR_RTS; in stop_read()
2190 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in stop_read()
2193 static int restart_read(struct edgeport_port *edge_port) in restart_read() argument
2199 spin_lock_irqsave(&edge_port->ep_lock, flags); in restart_read()
2201 if (edge_port->ep_read_urb_state == EDGE_READ_URB_STOPPED) { in restart_read()
2202 urb = edge_port->port->read_urb; in restart_read()
2205 edge_port->ep_read_urb_state = EDGE_READ_URB_RUNNING; in restart_read()
2206 edge_port->shadow_mcr |= MCR_RTS; in restart_read()
2208 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in restart_read()
2214 struct edgeport_port *edge_port, const struct ktermios *old_termios) in change_port_settings() argument
2216 struct device *dev = &edge_port->port->dev; in change_port_settings()
2235 config->bUartMode = (u8)(edge_port->bUartMode); in change_port_settings()
2287 restart_read(edge_port); in change_port_settings()
2326 edge_port->baud_rate = baud; in change_port_settings()
2346 status = send_port_cmd(edge_port->port, UMPC_SET_CONFIG, 0, config, in change_port_settings()
2358 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_set_termios() local
2360 if (edge_port == NULL) in edge_set_termios()
2363 change_port_settings(tty, edge_port, old_termios); in edge_set_termios()
2370 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_tiocmset() local
2374 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_tiocmset()
2375 mcr = edge_port->shadow_mcr; in edge_tiocmset()
2390 edge_port->shadow_mcr = mcr; in edge_tiocmset()
2391 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_tiocmset()
2393 restore_mcr(edge_port, mcr); in edge_tiocmset()
2400 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_tiocmget() local
2406 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_tiocmget()
2408 msr = edge_port->shadow_msr; in edge_tiocmget()
2409 mcr = edge_port->shadow_mcr; in edge_tiocmget()
2419 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_tiocmget()
2427 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_break() local
2434 status = ti_do_config(edge_port, UMPC_SET_CLR_BREAK, bv); in edge_break()
2551 struct edgeport_port *edge_port; in edge_port_probe() local
2554 edge_port = kzalloc(sizeof(*edge_port), GFP_KERNEL); in edge_port_probe()
2555 if (!edge_port) in edge_port_probe()
2558 spin_lock_init(&edge_port->ep_lock); in edge_port_probe()
2559 edge_port->port = port; in edge_port_probe()
2560 edge_port->edge_serial = usb_get_serial_data(port->serial); in edge_port_probe()
2561 edge_port->bUartMode = default_uart_mode; in edge_port_probe()
2565 edge_port->uart_base = UMPMEM_BASE_UART1; in edge_port_probe()
2566 edge_port->dma_address = UMPD_OEDB1_ADDRESS; in edge_port_probe()
2569 edge_port->uart_base = UMPMEM_BASE_UART2; in edge_port_probe()
2570 edge_port->dma_address = UMPD_OEDB2_ADDRESS; in edge_port_probe()
2580 __func__, port->port_number, edge_port->uart_base, in edge_port_probe()
2581 edge_port->dma_address); in edge_port_probe()
2583 usb_set_serial_port_data(port, edge_port); in edge_port_probe()
2597 kfree(edge_port); in edge_port_probe()
2604 struct edgeport_port *edge_port; in edge_port_remove() local
2606 edge_port = usb_get_serial_port_data(port); in edge_port_remove()
2608 kfree(edge_port); in edge_port_remove()
2617 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in uart_mode_show() local
2619 return sprintf(buf, "%d\n", edge_port->bUartMode); in uart_mode_show()
2626 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in uart_mode_store() local
2632 edge_port->bUartMode = v; in uart_mode_store()