• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/drivers/usb/serial/

Lines Matching defs:tport

175 static void ti_send(struct ti_port *tport);
176 static int ti_set_mcr(struct ti_port *tport, unsigned int mcr);
177 static int ti_get_lsr(struct ti_port *tport);
178 static int ti_get_serial_info(struct ti_port *tport,
180 static int ti_set_serial_info(struct ti_port *tport,
182 static void ti_handle_new_msr(struct ti_port *tport, __u8 msr);
184 static void ti_drain(struct ti_port *tport, unsigned long timeout, int flush);
186 static void ti_stop_read(struct ti_port *tport, struct tty_struct *tty);
187 static int ti_restart_read(struct ti_port *tport, struct tty_struct *tty);
410 struct ti_port *tport;
466 tport = kzalloc(sizeof(struct ti_port), GFP_KERNEL);
467 if (tport == NULL) {
472 spin_lock_init(&tport->tp_lock);
473 tport->tp_uart_base_addr = (i == 0 ? TI_UART1_BASE_ADDR : TI_UART2_BASE_ADDR);
474 tport->tp_flags = low_latency ? ASYNC_LOW_LATENCY : 0;
475 tport->tp_closing_wait = closing_wait;
476 init_waitqueue_head(&tport->tp_msr_wait);
477 init_waitqueue_head(&tport->tp_write_wait);
478 tport->tp_write_buf = ti_buf_alloc();
479 if (tport->tp_write_buf == NULL) {
481 kfree(tport);
485 tport->tp_port = serial->port[i];
486 tport->tp_tdev = tdev;
487 usb_set_serial_port_data(serial->port[i], tport);
488 tport->tp_uart_mode = 0; /* default is RS232 */
495 tport = usb_get_serial_port_data(serial->port[i]);
496 ti_buf_free(tport->tp_write_buf);
497 kfree(tport);
511 struct ti_port *tport;
516 tport = usb_get_serial_port_data(serial->port[i]);
517 if (tport) {
518 ti_buf_free(tport->tp_write_buf);
519 kfree(tport);
531 struct ti_port *tport = usb_get_serial_port_data(port);
543 if (tport == NULL)
547 tdev = tport->tp_tdev;
555 (tport->tp_flags & ASYNC_LOW_LATENCY) ? 1 : 0;
559 memset(&(tport->tp_icount), 0x00, sizeof(tport->tp_icount));
561 tport->tp_msr = 0;
562 tport->tp_shadow_mcr |= (TI_MCR_RTS | TI_MCR_DTR);
644 tport->tp_read_urb_state = TI_READ_URB_RUNNING;
646 urb->context = tport;
654 tport->tp_is_open = 1;
672 struct ti_port *tport;
680 tport = usb_get_serial_port_data(port);
681 if (tdev == NULL || tport == NULL)
684 tport->tp_is_open = 0;
686 ti_drain(tport, (tport->tp_closing_wait*HZ)/100, 1);
690 tport->tp_write_urb_in_use = 0;
702 --tport->tp_tdev->td_open_port_count;
703 if (tport->tp_tdev->td_open_port_count <= 0) {
706 tport->tp_tdev->td_open_port_count = 0;
718 struct ti_port *tport = usb_get_serial_port_data(port);
728 if (tport == NULL || !tport->tp_is_open)
731 spin_lock_irqsave(&tport->tp_lock, flags);
732 count = ti_buf_put(tport->tp_write_buf, data, count);
733 spin_unlock_irqrestore(&tport->tp_lock, flags);
735 ti_send(tport);
743 struct ti_port *tport = usb_get_serial_port_data(port);
749 if (tport == NULL)
752 spin_lock_irqsave(&tport->tp_lock, flags);
753 room = ti_buf_space_avail(tport->tp_write_buf);
754 spin_unlock_irqrestore(&tport->tp_lock, flags);
763 struct ti_port *tport = usb_get_serial_port_data(port);
769 if (tport == NULL)
772 spin_lock_irqsave(&tport->tp_lock, flags);
773 chars = ti_buf_data_avail(tport->tp_write_buf);
774 spin_unlock_irqrestore(&tport->tp_lock, flags);
783 struct ti_port *tport = usb_get_serial_port_data(port);
788 if (tport == NULL)
798 ti_stop_read(tport, tty);
805 struct ti_port *tport = usb_get_serial_port_data(port);
811 if (tport == NULL)
821 status = ti_restart_read(tport, tty);
831 struct ti_port *tport = usb_get_serial_port_data(port);
837 if (tport == NULL)
843 return ti_get_serial_info(tport, (struct serial_struct __user *)arg);
848 return ti_set_serial_info(tport, (struct serial_struct __user *)arg);
853 cprev = tport->tp_icount;
855 interruptible_sleep_on(&tport->tp_msr_wait);
858 cnow = tport->tp_icount;
873 dbg("%s - (%d) TIOCGICOUNT RX=%d, TX=%d", __FUNCTION__, port->number, tport->tp_icount.rx, tport->tp_icount.tx);
874 if (copy_to_user((void __user *)arg, &tport->tp_icount, sizeof(tport->tp_icount)))
886 struct ti_port *tport = usb_get_serial_port_data(port);
916 if (tport == NULL)
930 config->bUartMode = (__u8)(tport->tp_uart_mode);
973 ti_restart_read(tport, tty);
983 ti_restart_read(tport, tty);
991 if (tport->tp_tdev->td_is_3410)
1002 status = ti_command_out_sync(tport->tp_tdev, TI_SET_CONFIG,
1009 mcr = tport->tp_shadow_mcr;
1013 status = ti_set_mcr(tport, mcr);
1023 struct ti_port *tport = usb_get_serial_port_data(port);
1030 if (tport == NULL)
1033 msr = tport->tp_msr;
1034 mcr = tport->tp_shadow_mcr;
1053 struct ti_port *tport = usb_get_serial_port_data(port);
1058 if (tport == NULL)
1061 mcr = tport->tp_shadow_mcr;
1077 return ti_set_mcr(tport, mcr);
1083 struct ti_port *tport = usb_get_serial_port_data(port);
1088 if (tport == NULL)
1091 ti_drain(tport, (tport->tp_closing_wait*HZ)/100, 0);
1093 status = ti_write_byte(tport->tp_tdev,
1094 tport->tp_uart_base_addr + TI_UART_OFFSET_LCR,
1107 struct ti_port *tport;
1155 tport = usb_get_serial_port_data(port);
1156 if (!tport)
1167 ti_handle_new_msr(tport, msr);
1184 struct ti_port *tport = (struct ti_port *)urb->context;
1185 struct usb_serial_port *port = tport->tp_port;
1198 tport->tp_tdev->td_urb_error = 1;
1199 wake_up_interruptible(&tport->tp_write_wait);
1203 tport->tp_tdev->td_urb_error = 1;
1204 wake_up_interruptible(&tport->tp_write_wait);
1219 if (!tport->tp_is_open)
1225 spin_lock(&tport->tp_lock);
1226 tport->tp_icount.rx += urb->actual_length;
1227 spin_unlock(&tport->tp_lock);
1232 spin_lock(&tport->tp_lock);
1233 if (tport->tp_read_urb_state == TI_READ_URB_RUNNING) {
1236 } else if (tport->tp_read_urb_state == TI_READ_URB_STOPPING) {
1237 tport->tp_read_urb_state = TI_READ_URB_STOPPED;
1239 spin_unlock(&tport->tp_lock);
1247 struct ti_port *tport = (struct ti_port *)urb->context;
1248 struct usb_serial_port *port = tport->tp_port;
1253 tport->tp_write_urb_in_use = 0;
1262 tport->tp_tdev->td_urb_error = 1;
1263 wake_up_interruptible(&tport->tp_write_wait);
1267 tport->tp_tdev->td_urb_error = 1;
1268 wake_up_interruptible(&tport->tp_write_wait);
1272 ti_send(tport);
1297 static void ti_send(struct ti_port *tport)
1300 struct usb_serial_port *port = tport->tp_port;
1307 spin_lock_irqsave(&tport->tp_lock, flags);
1309 if (tport->tp_write_urb_in_use) {
1310 spin_unlock_irqrestore(&tport->tp_lock, flags);
1314 count = ti_buf_get(tport->tp_write_buf,
1319 spin_unlock_irqrestore(&tport->tp_lock, flags);
1323 tport->tp_write_urb_in_use = 1;
1325 spin_unlock_irqrestore(&tport->tp_lock, flags);
1333 ti_bulk_out_callback, tport);
1338 tport->tp_write_urb_in_use = 0;
1341 spin_lock_irqsave(&tport->tp_lock, flags);
1342 tport->tp_icount.tx += count;
1343 spin_unlock_irqrestore(&tport->tp_lock, flags);
1349 wake_up_interruptible(&tport->tp_write_wait);
1353 static int ti_set_mcr(struct ti_port *tport, unsigned int mcr)
1357 status = ti_write_byte(tport->tp_tdev,
1358 tport->tp_uart_base_addr + TI_UART_OFFSET_MCR,
1362 tport->tp_shadow_mcr = mcr;
1368 static int ti_get_lsr(struct ti_port *tport)
1371 struct ti_device *tdev = tport->tp_tdev;
1372 struct usb_serial_port *port = tport->tp_port;
1394 tport->tp_lsr = data->bLSR;
1402 static int ti_get_serial_info(struct ti_port *tport,
1405 struct usb_serial_port *port = tport->tp_port;
1416 ret_serial.flags = tport->tp_flags;
1418 ret_serial.baud_base = tport->tp_tdev->td_is_3410 ? 921600 : 460800;
1419 ret_serial.closing_wait = tport->tp_closing_wait;
1428 static int ti_set_serial_info(struct ti_port *tport,
1431 struct usb_serial_port *port = tport->tp_port;
1437 tport->tp_flags = new_serial.flags & TI_SET_SERIAL_FLAGS;
1440 (tport->tp_flags & ASYNC_LOW_LATENCY) ? 1 : 0;
1441 tport->tp_closing_wait = new_serial.closing_wait;
1447 static void ti_handle_new_msr(struct ti_port *tport, __u8 msr)
1456 spin_lock_irqsave(&tport->tp_lock, flags);
1457 icount = &tport->tp_icount;
1466 wake_up_interruptible(&tport->tp_msr_wait);
1467 spin_unlock_irqrestore(&tport->tp_lock, flags);
1470 tport->tp_msr = msr & TI_MSR_MASK;
1473 tty = tport->tp_port->tty;
1485 static void ti_drain(struct ti_port *tport, unsigned long timeout, int flush)
1487 struct ti_device *tdev = tport->tp_tdev;
1488 struct usb_serial_port *port = tport->tp_port;
1494 spin_lock_irqsave(&tport->tp_lock, flags);
1499 add_wait_queue(&tport->tp_write_wait, &wait);
1502 if (ti_buf_data_avail(tport->tp_write_buf) == 0
1507 spin_unlock_irqrestore(&tport->tp_lock, flags);
1509 spin_lock_irqsave(&tport->tp_lock, flags);
1512 remove_wait_queue(&tport->tp_write_wait, &wait);
1516 ti_buf_clear(tport->tp_write_buf);
1518 spin_unlock_irqrestore(&tport->tp_lock, flags);
1523 tport->tp_lsr &= ~TI_LSR_TX_EMPTY;
1525 && !(tport->tp_lsr&TI_LSR_TX_EMPTY) && !tdev->td_urb_error
1527 if (ti_get_lsr(tport))
1534 static void ti_stop_read(struct ti_port *tport, struct tty_struct *tty)
1538 spin_lock_irqsave(&tport->tp_lock, flags);
1540 if (tport->tp_read_urb_state == TI_READ_URB_RUNNING)
1541 tport->tp_read_urb_state = TI_READ_URB_STOPPING;
1543 spin_unlock_irqrestore(&tport->tp_lock, flags);
1547 static int ti_restart_read(struct ti_port *tport, struct tty_struct *tty)
1553 spin_lock_irqsave(&tport->tp_lock, flags);
1555 if (tport->tp_read_urb_state == TI_READ_URB_STOPPED) {
1556 tport->tp_read_urb_state = TI_READ_URB_RUNNING;
1557 urb = tport->tp_port->read_urb;
1558 spin_unlock_irqrestore(&tport->tp_lock, flags);
1560 urb->context = tport;
1561 urb->dev = tport->tp_port->serial->dev;
1564 tport->tp_read_urb_state = TI_READ_URB_RUNNING;
1565 spin_unlock_irqrestore(&tport->tp_lock, flags);