Lines Matching refs:edge_port

225 static void stop_read(struct edgeport_port *edge_port);
226 static int restart_read(struct edgeport_port *edge_port);
1560 static void handle_new_msr(struct edgeport_port *edge_port, __u8 msr) in handle_new_msr() argument
1565 dev_dbg(&edge_port->port->dev, "%s - %02x\n", __func__, msr); in handle_new_msr()
1569 icount = &edge_port->port->icount; in handle_new_msr()
1580 wake_up_interruptible(&edge_port->port->port.delta_msr_wait); in handle_new_msr()
1584 edge_port->shadow_msr = msr & 0xf0; in handle_new_msr()
1586 tty = tty_port_tty_get(&edge_port->port->port); in handle_new_msr()
1595 static void handle_new_lsr(struct edgeport_port *edge_port, int lsr_data, in handle_new_lsr() argument
1602 dev_dbg(&edge_port->port->dev, "%s - %02x\n", __func__, new_lsr); in handle_new_lsr()
1604 edge_port->shadow_lsr = lsr; in handle_new_lsr()
1615 edge_tty_recv(edge_port->port, &data, 1); in handle_new_lsr()
1618 icount = &edge_port->port->icount; in handle_new_lsr()
1633 struct edgeport_port *edge_port; in edge_interrupt_callback() local
1679 edge_port = usb_get_serial_port_data(port); in edge_interrupt_callback()
1680 if (!edge_port) { in edge_interrupt_callback()
1693 edge_port->lsr_event = 1; in edge_interrupt_callback()
1694 edge_port->lsr_mask = lsr; in edge_interrupt_callback()
1698 handle_new_lsr(edge_port, 0, lsr, 0); in edge_interrupt_callback()
1707 handle_new_msr(edge_port, msr); in edge_interrupt_callback()
1728 struct edgeport_port *edge_port = urb->context; in edge_bulk_in_callback() local
1729 struct device *dev = &edge_port->port->dev; in edge_bulk_in_callback()
1757 port_number = edge_port->port->port_number; in edge_bulk_in_callback()
1759 if (edge_port->lsr_event) { in edge_bulk_in_callback()
1760 edge_port->lsr_event = 0; in edge_bulk_in_callback()
1762 __func__, port_number, edge_port->lsr_mask, *data); in edge_bulk_in_callback()
1763 handle_new_lsr(edge_port, 1, edge_port->lsr_mask, *data); in edge_bulk_in_callback()
1771 if (edge_port->close_pending) in edge_bulk_in_callback()
1775 edge_tty_recv(edge_port->port, data, in edge_bulk_in_callback()
1777 edge_port->port->icount.rx += urb->actual_length; in edge_bulk_in_callback()
1782 spin_lock(&edge_port->ep_lock); in edge_bulk_in_callback()
1783 if (edge_port->ep_read_urb_state == EDGE_READ_URB_RUNNING) in edge_bulk_in_callback()
1785 else if (edge_port->ep_read_urb_state == EDGE_READ_URB_STOPPING) in edge_bulk_in_callback()
1786 edge_port->ep_read_urb_state = EDGE_READ_URB_STOPPED; in edge_bulk_in_callback()
1788 spin_unlock(&edge_port->ep_lock); in edge_bulk_in_callback()
1808 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_bulk_out_callback() local
1812 edge_port->ep_write_urb_in_use = 0; in edge_bulk_out_callback()
1838 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_open() local
1847 if (edge_port == NULL) in edge_open()
1855 status = ti_do_config(edge_port, UMPC_SET_CLR_LOOPBACK, 0); in edge_open()
1872 edge_port->ump_read_timeout = in edge_open()
1912 &edge_port->shadow_msr, 1); in edge_open()
1919 dev_dbg(&port->dev, "ShadowMSR 0x%X\n", edge_port->shadow_msr); in edge_open()
1922 edge_port->shadow_mcr = MCR_RTS | MCR_DTR; in edge_open()
1923 dev_dbg(&port->dev, "ShadowMCR 0x%X\n", edge_port->shadow_mcr); in edge_open()
1925 edge_serial = edge_port->edge_serial; in edge_open()
1963 edge_port->ep_read_urb_state = EDGE_READ_URB_RUNNING; in edge_open()
1964 urb->context = edge_port; in edge_open()
1978 if (edge_port->edge_serial->num_ports_open == 0) in edge_open()
1988 struct edgeport_port *edge_port; in edge_close() local
1994 edge_port = usb_get_serial_port_data(port); in edge_close()
1995 if (edge_serial == NULL || edge_port == NULL) in edge_close()
2002 edge_port->close_pending = 1; in edge_close()
2006 edge_port->ep_write_urb_in_use = 0; in edge_close()
2007 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_close()
2009 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_close()
2017 --edge_port->edge_serial->num_ports_open; in edge_close()
2018 if (edge_port->edge_serial->num_ports_open <= 0) { in edge_close()
2021 edge_port->edge_serial->num_ports_open = 0; in edge_close()
2024 edge_port->close_pending = 0; in edge_close()
2030 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_write() local
2037 if (edge_port == NULL) in edge_write()
2039 if (edge_port->close_pending == 1) in edge_write()
2043 &edge_port->ep_lock); in edge_write()
2052 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_send() local
2055 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_send()
2057 if (edge_port->ep_write_urb_in_use) { in edge_send()
2058 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_send()
2067 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_send()
2071 edge_port->ep_write_urb_in_use = 1; in edge_send()
2073 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_send()
2086 edge_port->ep_write_urb_in_use = 0; in edge_send()
2089 edge_port->port->icount.tx += count; in edge_send()
2102 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_write_room() local
2106 if (edge_port == NULL) in edge_write_room()
2108 if (edge_port->close_pending == 1) in edge_write_room()
2111 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_write_room()
2113 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_write_room()
2122 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_chars_in_buffer() local
2125 if (edge_port == NULL) in edge_chars_in_buffer()
2128 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_chars_in_buffer()
2130 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_chars_in_buffer()
2138 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_tx_empty() local
2141 ret = tx_active(edge_port); in edge_tx_empty()
2151 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_throttle() local
2154 if (edge_port == NULL) in edge_throttle()
2171 stop_read(edge_port); in edge_throttle()
2178 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_unthrottle() local
2181 if (edge_port == NULL) in edge_unthrottle()
2197 status = restart_read(edge_port); in edge_unthrottle()
2206 static void stop_read(struct edgeport_port *edge_port) in stop_read() argument
2210 spin_lock_irqsave(&edge_port->ep_lock, flags); in stop_read()
2212 if (edge_port->ep_read_urb_state == EDGE_READ_URB_RUNNING) in stop_read()
2213 edge_port->ep_read_urb_state = EDGE_READ_URB_STOPPING; in stop_read()
2214 edge_port->shadow_mcr &= ~MCR_RTS; in stop_read()
2216 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in stop_read()
2219 static int restart_read(struct edgeport_port *edge_port) in restart_read() argument
2225 spin_lock_irqsave(&edge_port->ep_lock, flags); in restart_read()
2227 if (edge_port->ep_read_urb_state == EDGE_READ_URB_STOPPED) { in restart_read()
2228 urb = edge_port->port->read_urb; in restart_read()
2231 edge_port->ep_read_urb_state = EDGE_READ_URB_RUNNING; in restart_read()
2232 edge_port->shadow_mcr |= MCR_RTS; in restart_read()
2234 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in restart_read()
2240 struct edgeport_port *edge_port, struct ktermios *old_termios) in change_port_settings() argument
2242 struct device *dev = &edge_port->port->dev; in change_port_settings()
2247 int port_number = edge_port->port->port_number; in change_port_settings()
2262 config->bUartMode = (__u8)(edge_port->bUartMode); in change_port_settings()
2314 restart_read(edge_port); in change_port_settings()
2350 edge_port->baud_rate = baud; in change_port_settings()
2370 status = send_cmd(edge_port->port->serial->dev, UMPC_SET_CONFIG, in change_port_settings()
2382 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_set_termios() local
2392 if (edge_port == NULL) in edge_set_termios()
2395 change_port_settings(tty, edge_port, old_termios); in edge_set_termios()
2402 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_tiocmset() local
2406 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_tiocmset()
2407 mcr = edge_port->shadow_mcr; in edge_tiocmset()
2422 edge_port->shadow_mcr = mcr; in edge_tiocmset()
2423 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_tiocmset()
2425 restore_mcr(edge_port, mcr); in edge_tiocmset()
2432 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_tiocmget() local
2438 spin_lock_irqsave(&edge_port->ep_lock, flags); in edge_tiocmget()
2440 msr = edge_port->shadow_msr; in edge_tiocmget()
2441 mcr = edge_port->shadow_mcr; in edge_tiocmget()
2451 spin_unlock_irqrestore(&edge_port->ep_lock, flags); in edge_tiocmget()
2456 static int get_serial_info(struct edgeport_port *edge_port, in get_serial_info() argument
2465 cwait = edge_port->port->port.closing_wait; in get_serial_info()
2472 tmp.line = edge_port->port->minor; in get_serial_info()
2473 tmp.port = edge_port->port->port_number; in get_serial_info()
2476 tmp.xmit_fifo_size = edge_port->port->bulk_out_size; in get_serial_info()
2490 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_ioctl() local
2495 return get_serial_info(edge_port, in edge_ioctl()
2504 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in edge_break() local
2510 status = ti_do_config(edge_port, UMPC_SET_CLR_BREAK, bv); in edge_break()
2598 struct edgeport_port *edge_port; in edge_port_probe() local
2601 edge_port = kzalloc(sizeof(*edge_port), GFP_KERNEL); in edge_port_probe()
2602 if (!edge_port) in edge_port_probe()
2605 spin_lock_init(&edge_port->ep_lock); in edge_port_probe()
2606 edge_port->port = port; in edge_port_probe()
2607 edge_port->edge_serial = usb_get_serial_data(port->serial); in edge_port_probe()
2608 edge_port->bUartMode = default_uart_mode; in edge_port_probe()
2612 edge_port->uart_base = UMPMEM_BASE_UART1; in edge_port_probe()
2613 edge_port->dma_address = UMPD_OEDB1_ADDRESS; in edge_port_probe()
2616 edge_port->uart_base = UMPMEM_BASE_UART2; in edge_port_probe()
2617 edge_port->dma_address = UMPD_OEDB2_ADDRESS; in edge_port_probe()
2627 __func__, port->port_number, edge_port->uart_base, in edge_port_probe()
2628 edge_port->dma_address); in edge_port_probe()
2630 usb_set_serial_port_data(port, edge_port); in edge_port_probe()
2641 kfree(edge_port); in edge_port_probe()
2648 struct edgeport_port *edge_port; in edge_port_remove() local
2650 edge_port = usb_get_serial_port_data(port); in edge_port_remove()
2652 kfree(edge_port); in edge_port_remove()
2663 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in uart_mode_show() local
2665 return sprintf(buf, "%d\n", edge_port->bUartMode); in uart_mode_show()
2672 struct edgeport_port *edge_port = usb_get_serial_port_data(port); in uart_mode_store() local
2678 edge_port->bUartMode = v; in uart_mode_store()