Lines Matching refs:tport

329 static void ti_send(struct ti_port *tport);
330 static int ti_set_mcr(struct ti_port *tport, unsigned int mcr);
331 static int ti_get_lsr(struct ti_port *tport, u8 *lsr);
333 static void ti_handle_new_msr(struct ti_port *tport, u8 msr);
335 static void ti_stop_read(struct ti_port *tport, struct tty_struct *tty);
336 static int ti_restart_read(struct ti_port *tport, struct tty_struct *tty);
601 struct ti_port *tport;
603 tport = kzalloc(sizeof(*tport), GFP_KERNEL);
604 if (!tport)
607 spin_lock_init(&tport->tp_lock);
609 tport->tp_uart_base_addr = TI_UART1_BASE_ADDR;
611 tport->tp_uart_base_addr = TI_UART2_BASE_ADDR;
612 tport->tp_port = port;
613 tport->tp_tdev = usb_get_serial_data(port->serial);
615 if (tport->tp_tdev->td_rs485_only)
616 tport->tp_uart_mode = TI_UART_485_RECEIVER_DISABLED;
618 tport->tp_uart_mode = TI_UART_232;
620 usb_set_serial_port_data(port, tport);
626 if (!tport->tp_tdev->td_is_3410)
634 struct ti_port *tport;
636 tport = usb_get_serial_port_data(port);
637 kfree(tport);
642 struct ti_port *tport = usb_get_serial_port_data(port);
654 tdev = tport->tp_tdev;
660 tport->tp_msr = 0;
661 tport->tp_shadow_mcr |= (TI_MCR_RTS | TI_MCR_DTR);
739 tport->tp_read_urb_state = TI_READ_URB_RUNNING;
740 urb->context = tport;
748 tport->tp_is_open = 1;
765 struct ti_port *tport;
770 tport = usb_get_serial_port_data(port);
772 tport->tp_is_open = 0;
776 tport->tp_write_urb_in_use = 0;
777 spin_lock_irqsave(&tport->tp_lock, flags);
779 spin_unlock_irqrestore(&tport->tp_lock, flags);
800 struct ti_port *tport = usb_get_serial_port_data(port);
806 if (!tport->tp_is_open)
810 &tport->tp_lock);
811 ti_send(tport);
820 struct ti_port *tport = usb_get_serial_port_data(port);
824 spin_lock_irqsave(&tport->tp_lock, flags);
826 spin_unlock_irqrestore(&tport->tp_lock, flags);
836 struct ti_port *tport = usb_get_serial_port_data(port);
840 spin_lock_irqsave(&tport->tp_lock, flags);
842 spin_unlock_irqrestore(&tport->tp_lock, flags);
850 struct ti_port *tport = usb_get_serial_port_data(port);
858 if (tport->tp_tdev->td_is_3410)
863 ret = ti_get_lsr(tport, &lsr);
873 struct ti_port *tport = usb_get_serial_port_data(port);
876 ti_stop_read(tport, tty);
884 struct ti_port *tport = usb_get_serial_port_data(port);
888 status = ti_restart_read(tport, tty);
899 struct ti_port *tport = usb_get_serial_port_data(port);
914 config->bUartMode = tport->tp_uart_mode;
959 ti_restart_read(tport, tty);
969 ti_restart_read(tport, tty);
978 if (tport->tp_tdev->td_is_3410)
1003 mcr = tport->tp_shadow_mcr;
1007 status = ti_set_mcr(tport, mcr);
1019 struct ti_port *tport = usb_get_serial_port_data(port);
1025 spin_lock_irqsave(&tport->tp_lock, flags);
1026 msr = tport->tp_msr;
1027 mcr = tport->tp_shadow_mcr;
1028 spin_unlock_irqrestore(&tport->tp_lock, flags);
1048 struct ti_port *tport = usb_get_serial_port_data(port);
1052 spin_lock_irqsave(&tport->tp_lock, flags);
1053 mcr = tport->tp_shadow_mcr;
1068 spin_unlock_irqrestore(&tport->tp_lock, flags);
1070 return ti_set_mcr(tport, mcr);
1077 struct ti_port *tport = usb_get_serial_port_data(port);
1082 status = ti_write_byte(port, tport->tp_tdev,
1083 tport->tp_uart_base_addr + TI_UART_OFFSET_LCR,
1109 struct ti_port *tport;
1156 tport = usb_get_serial_port_data(port);
1157 if (!tport)
1169 ti_handle_new_msr(tport, msr);
1188 struct ti_port *tport = urb->context;
1189 struct usb_serial_port *port = tport->tp_port;
1220 if (!tport->tp_is_open)
1225 spin_lock_irqsave(&tport->tp_lock, flags);
1227 spin_unlock_irqrestore(&tport->tp_lock, flags);
1232 spin_lock_irqsave(&tport->tp_lock, flags);
1233 if (tport->tp_read_urb_state == TI_READ_URB_RUNNING)
1235 else if (tport->tp_read_urb_state == TI_READ_URB_STOPPING)
1236 tport->tp_read_urb_state = TI_READ_URB_STOPPED;
1238 spin_unlock_irqrestore(&tport->tp_lock, flags);
1247 struct ti_port *tport = urb->context;
1248 struct usb_serial_port *port = tport->tp_port;
1251 tport->tp_write_urb_in_use = 0;
1267 ti_send(tport);
1291 static void ti_send(struct ti_port *tport)
1294 struct usb_serial_port *port = tport->tp_port;
1297 spin_lock_irqsave(&tport->tp_lock, flags);
1299 if (tport->tp_write_urb_in_use)
1309 tport->tp_write_urb_in_use = 1;
1311 spin_unlock_irqrestore(&tport->tp_lock, flags);
1320 ti_bulk_out_callback, tport);
1326 tport->tp_write_urb_in_use = 0;
1329 spin_lock_irqsave(&tport->tp_lock, flags);
1331 spin_unlock_irqrestore(&tport->tp_lock, flags);
1339 spin_unlock_irqrestore(&tport->tp_lock, flags);
1344 static int ti_set_mcr(struct ti_port *tport, unsigned int mcr)
1349 status = ti_write_byte(tport->tp_port, tport->tp_tdev,
1350 tport->tp_uart_base_addr + TI_UART_OFFSET_MCR,
1353 spin_lock_irqsave(&tport->tp_lock, flags);
1355 tport->tp_shadow_mcr = mcr;
1356 spin_unlock_irqrestore(&tport->tp_lock, flags);
1362 static int ti_get_lsr(struct ti_port *tport, u8 *lsr)
1365 struct usb_serial_port *port = tport->tp_port;
1394 struct ti_port *tport = usb_get_serial_port_data(port);
1396 ss->baud_base = tport->tp_tdev->td_is_3410 ? 921600 : 460800;
1400 static void ti_handle_new_msr(struct ti_port *tport, u8 msr)
1406 dev_dbg(&tport->tp_port->dev, "%s - msr 0x%02X\n", __func__, msr);
1409 spin_lock_irqsave(&tport->tp_lock, flags);
1410 icount = &tport->tp_port->icount;
1419 wake_up_interruptible(&tport->tp_port->port.delta_msr_wait);
1420 spin_unlock_irqrestore(&tport->tp_lock, flags);
1423 tport->tp_msr = msr & TI_MSR_MASK;
1426 tty = tty_port_tty_get(&tport->tp_port->port);
1435 static void ti_stop_read(struct ti_port *tport, struct tty_struct *tty)
1439 spin_lock_irqsave(&tport->tp_lock, flags);
1441 if (tport->tp_read_urb_state == TI_READ_URB_RUNNING)
1442 tport->tp_read_urb_state = TI_READ_URB_STOPPING;
1444 spin_unlock_irqrestore(&tport->tp_lock, flags);
1448 static int ti_restart_read(struct ti_port *tport, struct tty_struct *tty)
1454 spin_lock_irqsave(&tport->tp_lock, flags);
1456 if (tport->tp_read_urb_state == TI_READ_URB_STOPPED) {
1457 tport->tp_read_urb_state = TI_READ_URB_RUNNING;
1458 urb = tport->tp_port->read_urb;
1459 spin_unlock_irqrestore(&tport->tp_lock, flags);
1460 urb->context = tport;
1463 tport->tp_read_urb_state = TI_READ_URB_RUNNING;
1464 spin_unlock_irqrestore(&tport->tp_lock, flags);