Lines Matching refs:tport

116 static void ti_send(struct ti_port *tport);
117 static int ti_set_mcr(struct ti_port *tport, unsigned int mcr);
118 static int ti_get_lsr(struct ti_port *tport, u8 *lsr);
119 static int ti_get_serial_info(struct ti_port *tport,
121 static int ti_set_serial_info(struct tty_struct *tty, struct ti_port *tport,
123 static void ti_handle_new_msr(struct ti_port *tport, __u8 msr);
125 static void ti_stop_read(struct ti_port *tport, struct tty_struct *tty);
126 static int ti_restart_read(struct ti_port *tport, struct tty_struct *tty);
358 struct ti_port *tport;
360 tport = kzalloc(sizeof(*tport), GFP_KERNEL);
361 if (!tport)
364 spin_lock_init(&tport->tp_lock);
366 tport->tp_uart_base_addr = TI_UART1_BASE_ADDR;
368 tport->tp_uart_base_addr = TI_UART2_BASE_ADDR;
370 tport->tp_port = port;
371 tport->tp_tdev = usb_get_serial_data(port->serial);
372 tport->tp_uart_mode = 0; /* default is RS232 */
374 usb_set_serial_port_data(port, tport);
383 struct ti_port *tport;
385 tport = usb_get_serial_port_data(port);
386 kfree(tport);
393 struct ti_port *tport = usb_get_serial_port_data(port);
403 if (tport == NULL)
407 tdev = tport->tp_tdev;
415 tport->tp_msr = 0;
416 tport->tp_shadow_mcr |= (TI_MCR_RTS | TI_MCR_DTR);
506 tport->tp_read_urb_state = TI_READ_URB_RUNNING;
507 urb->context = tport;
515 tport->tp_is_open = 1;
533 struct ti_port *tport;
540 tport = usb_get_serial_port_data(port);
541 if (tdev == NULL || tport == NULL)
544 tport->tp_is_open = 0;
548 tport->tp_write_urb_in_use = 0;
549 spin_lock_irqsave(&tport->tp_lock, flags);
551 spin_unlock_irqrestore(&tport->tp_lock, flags);
565 --tport->tp_tdev->td_open_port_count;
566 if (tport->tp_tdev->td_open_port_count <= 0) {
569 tport->tp_tdev->td_open_port_count = 0;
579 struct ti_port *tport = usb_get_serial_port_data(port);
586 if (tport == NULL || !tport->tp_is_open)
590 &tport->tp_lock);
591 ti_send(tport);
600 struct ti_port *tport = usb_get_serial_port_data(port);
604 if (tport == NULL)
607 spin_lock_irqsave(&tport->tp_lock, flags);
609 spin_unlock_irqrestore(&tport->tp_lock, flags);
619 struct ti_port *tport = usb_get_serial_port_data(port);
623 if (tport == NULL)
626 spin_lock_irqsave(&tport->tp_lock, flags);
628 spin_unlock_irqrestore(&tport->tp_lock, flags);
636 struct ti_port *tport = usb_get_serial_port_data(port);
640 ret = ti_get_lsr(tport, &lsr);
650 struct ti_port *tport = usb_get_serial_port_data(port);
652 if (tport == NULL)
656 ti_stop_read(tport, tty);
664 struct ti_port *tport = usb_get_serial_port_data(port);
667 if (tport == NULL)
671 status = ti_restart_read(tport, tty);
682 struct ti_port *tport = usb_get_serial_port_data(port);
684 if (tport == NULL)
690 return ti_get_serial_info(tport,
694 return ti_set_serial_info(tty, tport,
704 struct ti_port *tport = usb_get_serial_port_data(port);
719 if (tport == NULL)
731 config->bUartMode = (__u8)(tport->tp_uart_mode);
776 ti_restart_read(tport, tty);
786 ti_restart_read(tport, tty);
795 if (tport->tp_tdev->td_is_3410)
813 status = ti_command_out_sync(tport->tp_tdev, TI_SET_CONFIG,
821 mcr = tport->tp_shadow_mcr;
825 status = ti_set_mcr(tport, mcr);
838 struct ti_port *tport = usb_get_serial_port_data(port);
844 if (tport == NULL)
847 spin_lock_irqsave(&tport->tp_lock, flags);
848 msr = tport->tp_msr;
849 mcr = tport->tp_shadow_mcr;
850 spin_unlock_irqrestore(&tport->tp_lock, flags);
870 struct ti_port *tport = usb_get_serial_port_data(port);
874 if (tport == NULL)
877 spin_lock_irqsave(&tport->tp_lock, flags);
878 mcr = tport->tp_shadow_mcr;
893 spin_unlock_irqrestore(&tport->tp_lock, flags);
895 return ti_set_mcr(tport, mcr);
902 struct ti_port *tport = usb_get_serial_port_data(port);
907 if (tport == NULL)
910 status = ti_write_byte(port, tport->tp_tdev,
911 tport->tp_uart_base_addr + TI_UART_OFFSET_LCR,
924 struct ti_port *tport;
973 tport = usb_get_serial_port_data(port);
974 if (!tport)
986 ti_handle_new_msr(tport, msr);
1005 struct ti_port *tport = urb->context;
1006 struct usb_serial_port *port = tport->tp_port;
1018 tport->tp_tdev->td_urb_error = 1;
1023 tport->tp_tdev->td_urb_error = 1;
1038 if (!tport->tp_is_open)
1043 spin_lock(&tport->tp_lock);
1045 spin_unlock(&tport->tp_lock);
1050 spin_lock(&tport->tp_lock);
1051 if (tport->tp_read_urb_state == TI_READ_URB_RUNNING)
1053 else if (tport->tp_read_urb_state == TI_READ_URB_STOPPING)
1054 tport->tp_read_urb_state = TI_READ_URB_STOPPED;
1056 spin_unlock(&tport->tp_lock);
1065 struct ti_port *tport = urb->context;
1066 struct usb_serial_port *port = tport->tp_port;
1069 tport->tp_write_urb_in_use = 0;
1078 tport->tp_tdev->td_urb_error = 1;
1083 tport->tp_tdev->td_urb_error = 1;
1087 ti_send(tport);
1111 static void ti_send(struct ti_port *tport)
1114 struct usb_serial_port *port = tport->tp_port;
1117 spin_lock_irqsave(&tport->tp_lock, flags);
1119 if (tport->tp_write_urb_in_use)
1129 tport->tp_write_urb_in_use = 1;
1131 spin_unlock_irqrestore(&tport->tp_lock, flags);
1140 ti_bulk_out_callback, tport);
1146 tport->tp_write_urb_in_use = 0;
1149 spin_lock_irqsave(&tport->tp_lock, flags);
1151 spin_unlock_irqrestore(&tport->tp_lock, flags);
1159 spin_unlock_irqrestore(&tport->tp_lock, flags);
1164 static int ti_set_mcr(struct ti_port *tport, unsigned int mcr)
1169 status = ti_write_byte(tport->tp_port, tport->tp_tdev,
1170 tport->tp_uart_base_addr + TI_UART_OFFSET_MCR,
1173 spin_lock_irqsave(&tport->tp_lock, flags);
1175 tport->tp_shadow_mcr = mcr;
1176 spin_unlock_irqrestore(&tport->tp_lock, flags);
1182 static int ti_get_lsr(struct ti_port *tport, u8 *lsr)
1185 struct ti_device *tdev = tport->tp_tdev;
1186 struct usb_serial_port *port = tport->tp_port;
1214 static int ti_get_serial_info(struct ti_port *tport,
1217 struct usb_serial_port *port = tport->tp_port;
1233 ret_serial.flags = tport->tp_flags;
1235 ret_serial.baud_base = tport->tp_tdev->td_is_3410 ? 921600 : 460800;
1245 static int ti_set_serial_info(struct tty_struct *tty, struct ti_port *tport,
1258 tport->tp_flags = new_serial.flags & TI_SET_SERIAL_FLAGS;
1259 tport->tp_port->port.closing_wait = cwait;
1265 static void ti_handle_new_msr(struct ti_port *tport, __u8 msr)
1271 dev_dbg(&tport->tp_port->dev, "%s - msr 0x%02X\n", __func__, msr);
1274 spin_lock_irqsave(&tport->tp_lock, flags);
1275 icount = &tport->tp_port->icount;
1284 wake_up_interruptible(&tport->tp_port->port.delta_msr_wait);
1285 spin_unlock_irqrestore(&tport->tp_lock, flags);
1288 tport->tp_msr = msr & TI_MSR_MASK;
1291 tty = tty_port_tty_get(&tport->tp_port->port);
1300 static void ti_stop_read(struct ti_port *tport, struct tty_struct *tty)
1304 spin_lock_irqsave(&tport->tp_lock, flags);
1306 if (tport->tp_read_urb_state == TI_READ_URB_RUNNING)
1307 tport->tp_read_urb_state = TI_READ_URB_STOPPING;
1309 spin_unlock_irqrestore(&tport->tp_lock, flags);
1313 static int ti_restart_read(struct ti_port *tport, struct tty_struct *tty)
1319 spin_lock_irqsave(&tport->tp_lock, flags);
1321 if (tport->tp_read_urb_state == TI_READ_URB_STOPPED) {
1322 tport->tp_read_urb_state = TI_READ_URB_RUNNING;
1323 urb = tport->tp_port->read_urb;
1324 spin_unlock_irqrestore(&tport->tp_lock, flags);
1325 urb->context = tport;
1328 tport->tp_read_urb_state = TI_READ_URB_RUNNING;
1329 spin_unlock_irqrestore(&tport->tp_lock, flags);