• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/usb/serial/

Lines Matching refs:tport

123 static void ti_send(struct ti_port *tport);
124 static int ti_set_mcr(struct ti_port *tport, unsigned int mcr);
125 static int ti_get_lsr(struct ti_port *tport);
126 static int ti_get_serial_info(struct ti_port *tport,
128 static int ti_set_serial_info(struct tty_struct *tty, struct ti_port *tport,
130 static void ti_handle_new_msr(struct ti_port *tport, __u8 msr);
132 static void ti_drain(struct ti_port *tport, unsigned long timeout, int flush);
134 static void ti_stop_read(struct ti_port *tport, struct tty_struct *tty);
135 static int ti_restart_read(struct ti_port *tport, struct tty_struct *tty);
381 struct ti_port *tport;
432 tport = kzalloc(sizeof(struct ti_port), GFP_KERNEL);
433 if (tport == NULL) {
438 spin_lock_init(&tport->tp_lock);
439 tport->tp_uart_base_addr = (i == 0 ?
441 tport->tp_closing_wait = closing_wait;
442 init_waitqueue_head(&tport->tp_msr_wait);
443 init_waitqueue_head(&tport->tp_write_wait);
444 if (kfifo_alloc(&tport->write_fifo, TI_WRITE_BUF_SIZE,
447 kfree(tport);
451 tport->tp_port = serial->port[i];
452 tport->tp_tdev = tdev;
453 usb_set_serial_port_data(serial->port[i], tport);
454 tport->tp_uart_mode = 0; /* default is RS232 */
461 tport = usb_get_serial_port_data(serial->port[i]);
462 kfifo_free(&tport->write_fifo);
463 kfree(tport);
477 struct ti_port *tport;
482 tport = usb_get_serial_port_data(serial->port[i]);
483 if (tport) {
484 kfifo_free(&tport->write_fifo);
485 kfree(tport);
495 struct ti_port *tport = usb_get_serial_port_data(port);
507 if (tport == NULL)
511 tdev = tport->tp_tdev;
519 memset(&(tport->tp_icount), 0x00, sizeof(tport->tp_icount));
521 tport->tp_msr = 0;
522 tport->tp_shadow_mcr |= (TI_MCR_RTS | TI_MCR_DTR);
615 tport->tp_read_urb_state = TI_READ_URB_RUNNING;
617 urb->context = tport;
626 tport->tp_is_open = 1;
644 struct ti_port *tport;
652 tport = usb_get_serial_port_data(port);
653 if (tdev == NULL || tport == NULL)
656 tport->tp_is_open = 0;
658 ti_drain(tport, (tport->tp_closing_wait*HZ)/100, 1);
662 tport->tp_write_urb_in_use = 0;
676 --tport->tp_tdev->td_open_port_count;
677 if (tport->tp_tdev->td_open_port_count <= 0) {
680 tport->tp_tdev->td_open_port_count = 0;
692 struct ti_port *tport = usb_get_serial_port_data(port);
701 if (tport == NULL || !tport->tp_is_open)
704 count = kfifo_in_locked(&tport->write_fifo, data, count,
705 &tport->tp_lock);
706 ti_send(tport);
715 struct ti_port *tport = usb_get_serial_port_data(port);
721 if (tport == NULL)
724 spin_lock_irqsave(&tport->tp_lock, flags);
725 room = kfifo_avail(&tport->write_fifo);
726 spin_unlock_irqrestore(&tport->tp_lock, flags);
736 struct ti_port *tport = usb_get_serial_port_data(port);
742 if (tport == NULL)
745 spin_lock_irqsave(&tport->tp_lock, flags);
746 chars = kfifo_len(&tport->write_fifo);
747 spin_unlock_irqrestore(&tport->tp_lock, flags);
757 struct ti_port *tport = usb_get_serial_port_data(port);
761 if (tport == NULL)
765 ti_stop_read(tport, tty);
773 struct ti_port *tport = usb_get_serial_port_data(port);
778 if (tport == NULL)
782 status = ti_restart_read(tport, tty);
794 struct ti_port *tport = usb_get_serial_port_data(port);
800 if (tport == NULL)
806 return ti_get_serial_info(tport,
810 return ti_set_serial_info(tty, tport,
814 cprev = tport->tp_icount;
816 interruptible_sleep_on(&tport->tp_msr_wait);
819 cnow = tport->tp_icount;
834 tport->tp_icount.rx, tport->tp_icount.tx);
835 if (copy_to_user((void __user *)arg, &tport->tp_icount,
836 sizeof(tport->tp_icount)))
847 struct ti_port *tport = usb_get_serial_port_data(port);
864 if (tport == NULL)
878 config->bUartMode = (__u8)(tport->tp_uart_mode);
924 ti_restart_read(tport, tty);
934 ti_restart_read(tport, tty);
943 if (tport->tp_tdev->td_is_3410)
957 status = ti_command_out_sync(tport->tp_tdev, TI_SET_CONFIG,
965 mcr = tport->tp_shadow_mcr;
969 status = ti_set_mcr(tport, mcr);
982 struct ti_port *tport = usb_get_serial_port_data(port);
990 if (tport == NULL)
993 spin_lock_irqsave(&tport->tp_lock, flags);
994 msr = tport->tp_msr;
995 mcr = tport->tp_shadow_mcr;
996 spin_unlock_irqrestore(&tport->tp_lock, flags);
1016 struct ti_port *tport = usb_get_serial_port_data(port);
1022 if (tport == NULL)
1025 spin_lock_irqsave(&tport->tp_lock, flags);
1026 mcr = tport->tp_shadow_mcr;
1041 spin_unlock_irqrestore(&tport->tp_lock, flags);
1043 return ti_set_mcr(tport, mcr);
1050 struct ti_port *tport = usb_get_serial_port_data(port);
1055 if (tport == NULL)
1058 ti_drain(tport, (tport->tp_closing_wait*HZ)/100, 0);
1060 status = ti_write_byte(tport->tp_tdev,
1061 tport->tp_uart_base_addr + TI_UART_OFFSET_LCR,
1074 struct ti_port *tport;
1126 tport = usb_get_serial_port_data(port);
1127 if (!tport)
1139 ti_handle_new_msr(tport, msr);
1158 struct ti_port *tport = urb->context;
1159 struct usb_serial_port *port = tport->tp_port;
1174 tport->tp_tdev->td_urb_error = 1;
1175 wake_up_interruptible(&tport->tp_write_wait);
1180 tport->tp_tdev->td_urb_error = 1;
1181 wake_up_interruptible(&tport->tp_write_wait);
1198 if (!tport->tp_is_open)
1205 spin_lock(&tport->tp_lock);
1206 tport->tp_icount.rx += urb->actual_length;
1207 spin_unlock(&tport->tp_lock);
1214 spin_lock(&tport->tp_lock);
1215 if (tport->tp_read_urb_state == TI_READ_URB_RUNNING) {
1218 } else if (tport->tp_read_urb_state == TI_READ_URB_STOPPING) {
1219 tport->tp_read_urb_state = TI_READ_URB_STOPPED;
1221 spin_unlock(&tport->tp_lock);
1230 struct ti_port *tport = urb->context;
1231 struct usb_serial_port *port = tport->tp_port;
1237 tport->tp_write_urb_in_use = 0;
1246 tport->tp_tdev->td_urb_error = 1;
1247 wake_up_interruptible(&tport->tp_write_wait);
1252 tport->tp_tdev->td_urb_error = 1;
1253 wake_up_interruptible(&tport->tp_write_wait);
1257 ti_send(tport);
1282 static void ti_send(struct ti_port *tport)
1285 struct usb_serial_port *port = tport->tp_port;
1292 spin_lock_irqsave(&tport->tp_lock, flags);
1294 if (tport->tp_write_urb_in_use)
1297 count = kfifo_out(&tport->write_fifo,
1304 tport->tp_write_urb_in_use = 1;
1306 spin_unlock_irqrestore(&tport->tp_lock, flags);
1315 ti_bulk_out_callback, tport);
1321 tport->tp_write_urb_in_use = 0;
1324 spin_lock_irqsave(&tport->tp_lock, flags);
1325 tport->tp_icount.tx += count;
1326 spin_unlock_irqrestore(&tport->tp_lock, flags);
1333 wake_up_interruptible(&tport->tp_write_wait);
1336 spin_unlock_irqrestore(&tport->tp_lock, flags);
1342 static int ti_set_mcr(struct ti_port *tport, unsigned int mcr)
1347 status = ti_write_byte(tport->tp_tdev,
1348 tport->tp_uart_base_addr + TI_UART_OFFSET_MCR,
1351 spin_lock_irqsave(&tport->tp_lock, flags);
1353 tport->tp_shadow_mcr = mcr;
1354 spin_unlock_irqrestore(&tport->tp_lock, flags);
1360 static int ti_get_lsr(struct ti_port *tport)
1363 struct ti_device *tdev = tport->tp_tdev;
1364 struct usb_serial_port *port = tport->tp_port;
1388 tport->tp_lsr = data->bLSR;
1396 static int ti_get_serial_info(struct ti_port *tport,
1399 struct usb_serial_port *port = tport->tp_port;
1410 ret_serial.flags = tport->tp_flags;
1412 ret_serial.baud_base = tport->tp_tdev->td_is_3410 ? 921600 : 460800;
1413 ret_serial.closing_wait = tport->tp_closing_wait;
1422 static int ti_set_serial_info(struct tty_struct *tty, struct ti_port *tport,
1430 tport->tp_flags = new_serial.flags & TI_SET_SERIAL_FLAGS;
1431 tport->tp_closing_wait = new_serial.closing_wait;
1437 static void ti_handle_new_msr(struct ti_port *tport, __u8 msr)
1446 spin_lock_irqsave(&tport->tp_lock, flags);
1447 icount = &tport->tp_icount;
1456 wake_up_interruptible(&tport->tp_msr_wait);
1457 spin_unlock_irqrestore(&tport->tp_lock, flags);
1460 tport->tp_msr = msr & TI_MSR_MASK;
1463 tty = tty_port_tty_get(&tport->tp_port->port);
1476 static void ti_drain(struct ti_port *tport, unsigned long timeout, int flush)
1478 struct ti_device *tdev = tport->tp_tdev;
1479 struct usb_serial_port *port = tport->tp_port;
1484 spin_lock_irq(&tport->tp_lock);
1489 add_wait_queue(&tport->tp_write_wait, &wait);
1492 if (kfifo_len(&tport->write_fifo) == 0
1497 spin_unlock_irq(&tport->tp_lock);
1499 spin_lock_irq(&tport->tp_lock);
1502 remove_wait_queue(&tport->tp_write_wait, &wait);
1506 kfifo_reset_out(&tport->write_fifo);
1508 spin_unlock_irq(&tport->tp_lock);
1514 tport->tp_lsr &= ~TI_LSR_TX_EMPTY;
1516 && !(tport->tp_lsr&TI_LSR_TX_EMPTY) && !tdev->td_urb_error
1518 if (ti_get_lsr(tport))
1528 static void ti_stop_read(struct ti_port *tport, struct tty_struct *tty)
1532 spin_lock_irqsave(&tport->tp_lock, flags);
1534 if (tport->tp_read_urb_state == TI_READ_URB_RUNNING)
1535 tport->tp_read_urb_state = TI_READ_URB_STOPPING;
1537 spin_unlock_irqrestore(&tport->tp_lock, flags);
1541 static int ti_restart_read(struct ti_port *tport, struct tty_struct *tty)
1547 spin_lock_irqsave(&tport->tp_lock, flags);
1549 if (tport->tp_read_urb_state == TI_READ_URB_STOPPED) {
1550 tport->tp_read_urb_state = TI_READ_URB_RUNNING;
1551 urb = tport->tp_port->read_urb;
1552 spin_unlock_irqrestore(&tport->tp_lock, flags);
1554 urb->context = tport;
1555 urb->dev = tport->tp_port->serial->dev;
1558 tport->tp_read_urb_state = TI_READ_URB_RUNNING;
1559 spin_unlock_irqrestore(&tport->tp_lock, flags);