Lines Matching refs:port

274 	u8 port;  member
284 u8 port; member
339 u8 port; member
347 u8 port; member
352 struct port { struct
353 struct tty_port port; member
386 struct port port[NOZOMI_MAX_PORTS]; argument
423 static inline struct port *get_port_by_tty(const struct tty_struct *tty) in get_port_by_tty()
426 return ndev ? &ndev->port[tty->index % MAX_PORT] : NULL; in get_port_by_tty()
535 dc->port[PORT_MDM].dl_addr[CH_A] = offset; in nozomi_setup_memory()
536 dc->port[PORT_MDM].dl_addr[CH_B] = in nozomi_setup_memory()
538 dc->port[PORT_MDM].dl_size[CH_A] = in nozomi_setup_memory()
540 dc->port[PORT_MDM].dl_size[CH_B] = in nozomi_setup_memory()
544 dc->port[PORT_DIAG].dl_addr[CH_A] = in nozomi_setup_memory()
546 dc->port[PORT_DIAG].dl_size[CH_A] = in nozomi_setup_memory()
548 dc->port[PORT_DIAG].dl_addr[CH_B] = in nozomi_setup_memory()
550 dc->port[PORT_DIAG].dl_size[CH_B] = in nozomi_setup_memory()
554 dc->port[PORT_APP1].dl_addr[CH_A] = in nozomi_setup_memory()
556 dc->port[PORT_APP1].dl_size[CH_A] = in nozomi_setup_memory()
560 dc->port[PORT_APP2].dl_addr[CH_A] = in nozomi_setup_memory()
562 dc->port[PORT_APP2].dl_size[CH_A] = in nozomi_setup_memory()
566 dc->port[PORT_CTRL].dl_addr[CH_A] = in nozomi_setup_memory()
568 dc->port[PORT_CTRL].dl_size[CH_A] = in nozomi_setup_memory()
574 dc->port[PORT_MDM].ul_addr[CH_A] = offset; in nozomi_setup_memory()
575 dc->port[PORT_MDM].ul_size[CH_A] = in nozomi_setup_memory()
577 dc->port[PORT_MDM].ul_addr[CH_B] = in nozomi_setup_memory()
579 dc->port[PORT_MDM].ul_size[CH_B] = in nozomi_setup_memory()
583 dc->port[PORT_DIAG].ul_addr[CH_A] = in nozomi_setup_memory()
585 dc->port[PORT_DIAG].ul_size[CH_A] = in nozomi_setup_memory()
589 dc->port[PORT_APP1].ul_addr[CH_A] = in nozomi_setup_memory()
591 dc->port[PORT_APP1].ul_size[CH_A] = in nozomi_setup_memory()
595 dc->port[PORT_APP2].ul_addr[CH_A] = in nozomi_setup_memory()
597 dc->port[PORT_APP2].ul_size[CH_A] = in nozomi_setup_memory()
601 dc->port[PORT_CTRL].ul_addr[CH_A] = in nozomi_setup_memory()
603 dc->port[PORT_CTRL].ul_size[CH_A] = in nozomi_setup_memory()
676 dc->port[PORT_MDM].toggle_ul = dc->config_table.toggle.mdm_ul; in nozomi_read_config_table()
677 dc->port[PORT_MDM].toggle_dl = dc->config_table.toggle.mdm_dl; in nozomi_read_config_table()
678 dc->port[PORT_DIAG].toggle_dl = dc->config_table.toggle.diag_dl; in nozomi_read_config_table()
680 dc->port[PORT_MDM].toggle_ul, in nozomi_read_config_table()
681 dc->port[PORT_MDM].toggle_dl, dc->port[PORT_DIAG].toggle_dl); in nozomi_read_config_table()
686 memset(&dc->port[i].ctrl_dl, 0, sizeof(struct ctrl_dl)); in nozomi_read_config_table()
687 memset(&dc->port[i].ctrl_ul, 0, sizeof(struct ctrl_ul)); in nozomi_read_config_table()
716 write_mem32(dc->port[PORT_MDM].ul_addr[CH_A], in nozomi_read_config_table()
718 write_mem32(dc->port[PORT_MDM].ul_addr[CH_B], in nozomi_read_config_table()
730 static void enable_transmit_ul(enum port_type port, struct nozomi *dc) in enable_transmit_ul() argument
734 if (port < NOZOMI_MAX_PORTS) { in enable_transmit_ul()
735 dc->last_ier |= mask[port]; in enable_transmit_ul()
743 static void disable_transmit_ul(enum port_type port, struct nozomi *dc) in disable_transmit_ul() argument
748 if (port < NOZOMI_MAX_PORTS) { in disable_transmit_ul()
749 dc->last_ier &= mask[port]; in disable_transmit_ul()
757 static void enable_transmit_dl(enum port_type port, struct nozomi *dc) in enable_transmit_dl() argument
761 if (port < NOZOMI_MAX_PORTS) { in enable_transmit_dl()
762 dc->last_ier |= mask[port]; in enable_transmit_dl()
770 static void disable_transmit_dl(enum port_type port, struct nozomi *dc) in disable_transmit_dl() argument
775 if (port < NOZOMI_MAX_PORTS) { in disable_transmit_dl()
776 dc->last_ier &= mask[port]; in disable_transmit_dl()
790 struct port *port = &dc->port[index]; in send_data() local
791 const u8 toggle = port->toggle_ul; in send_data()
792 void __iomem *addr = port->ul_addr[toggle]; in send_data()
793 const u32 ul_size = port->ul_size[toggle]; in send_data()
796 size = kfifo_out(&port->fifo_ul, dc->send_buf, in send_data()
810 tty_port_tty_wakeup(&port->port); in send_data()
821 struct port *port = &dc->port[index]; in receive_data() local
822 void __iomem *addr = port->dl_addr[port->toggle_dl]; in receive_data()
823 struct tty_struct *tty = tty_port_tty_get(&port->port); in receive_data()
849 tty_insert_flip_char(&port->port, buf[0], TTY_NORMAL); in receive_data()
852 size -= tty_insert_flip_string(&port->port, in receive_data()
855 i = tty_insert_flip_string(&port->port, in receive_data()
921 enum port_type port = PORT_MDM; in receive_flow_control() local
926 read_mem32((u32 *) &ctrl_dl, dc->port[PORT_CTRL].dl_addr[CH_A], 2); in receive_flow_control()
928 switch (ctrl_dl.port) { in receive_flow_control()
935 port = PORT_MDM; in receive_flow_control()
939 port = PORT_DIAG; in receive_flow_control()
943 port = PORT_APP1; in receive_flow_control()
947 port = PORT_APP2; in receive_flow_control()
964 DBG1("0x%04X->0x%04X", *((u16 *)&dc->port[port].ctrl_dl), in receive_flow_control()
967 old_ctrl = dc->port[port].ctrl_dl; in receive_flow_control()
968 dc->port[port].ctrl_dl = ctrl_dl; in receive_flow_control()
972 enable_ier, port); in receive_flow_control()
973 disable_transmit_ul(port, dc); in receive_flow_control()
977 if (kfifo_len(&dc->port[port].fifo_ul)) { in receive_flow_control()
979 enable_ier, port); in receive_flow_control()
981 kfifo_len(&dc->port[port].fifo_ul)); in receive_flow_control()
982 enable_transmit_ul(port, dc); in receive_flow_control()
994 dc->port[port].tty_icount.cts++; in receive_flow_control()
996 dc->port[port].tty_icount.dsr++; in receive_flow_control()
998 dc->port[port].tty_icount.rng++; in receive_flow_control()
1000 dc->port[port].tty_icount.dcd++; in receive_flow_control()
1002 wake_up_interruptible(&dc->port[port].tty_wait); in receive_flow_control()
1005 port, in receive_flow_control()
1006 dc->port[port].tty_icount.dcd, dc->port[port].tty_icount.cts, in receive_flow_control()
1007 dc->port[port].tty_icount.rng, dc->port[port].tty_icount.dsr); in receive_flow_control()
1012 static enum ctrl_port_type port2ctrl(enum port_type port, in port2ctrl() argument
1015 switch (port) { in port2ctrl()
1043 if (dc->port[i].update_flow_control) { in send_flow_control()
1048 dc->port[i].ctrl_ul.port = port2ctrl(i, dc); in send_flow_control()
1049 ctrl = (u16 *)&dc->port[i].ctrl_ul; in send_flow_control()
1050 write_mem32(dc->port[PORT_CTRL].ul_addr[0], \ in send_flow_control()
1052 dc->port[i].update_flow_control = 0; in send_flow_control()
1064 static int handle_data_dl(struct nozomi *dc, enum port_type port, u8 *toggle, in handle_data_dl() argument
1068 if (receive_data(port, dc)) { in handle_data_dl()
1074 if (receive_data(port, dc)) { in handle_data_dl()
1080 if (receive_data(port, dc)) { in handle_data_dl()
1086 if (receive_data(port, dc)) { in handle_data_dl()
1104 static int handle_data_ul(struct nozomi *dc, enum port_type port, u16 read_iir) in handle_data_ul() argument
1106 u8 *toggle = &(dc->port[port].toggle_ul); in handle_data_ul()
1111 if (send_data(port, dc)) { in handle_data_ul()
1121 if (send_data(port, dc)) { in handle_data_ul()
1132 if (send_data(port, dc)) { in handle_data_ul()
1142 if (send_data(port, dc)) { in handle_data_ul()
1213 &(dc->port[PORT_MDM].toggle_dl), read_iir, in interrupt_handler()
1227 &(dc->port[PORT_DIAG].toggle_dl), read_iir, in interrupt_handler()
1274 tty_flip_buffer_push(&dc->port[a].port); in interrupt_handler()
1307 dc->port[PORT_MDM].token_dl = MDM_DL; in nozomi_setup_private_data()
1308 dc->port[PORT_DIAG].token_dl = DIAG_DL; in nozomi_setup_private_data()
1309 dc->port[PORT_APP1].token_dl = APP1_DL; in nozomi_setup_private_data()
1310 dc->port[PORT_APP2].token_dl = APP2_DL; in nozomi_setup_private_data()
1313 init_waitqueue_head(&dc->port[i].tty_wait); in nozomi_setup_private_data()
1419 if (kfifo_alloc(&dc->port[i].fifo_ul, FIFO_BUFFER_SIZE_UL, in nozomi_card_init()
1460 struct port *port = &dc->port[i]; in nozomi_card_init() local
1461 port->dc = dc; in nozomi_card_init()
1462 tty_port_init(&port->port); in nozomi_card_init()
1463 port->port.ops = &noz_tty_port_ops; in nozomi_card_init()
1464 tty_dev = tty_port_register_device(&port->port, ntty_driver, in nozomi_card_init()
1470 tty_port_destroy(&port->port); in nozomi_card_init()
1480 tty_port_destroy(&dc->port[i].port); in nozomi_card_init()
1484 kfifo_free(&dc->port[i].fifo_ul); in nozomi_card_init()
1505 tty_port_tty_hangup(&dc->port[i].port, false); in tty_exit()
1513 tty_port_destroy(&dc->port[i].port); in tty_exit()
1532 ctrl.port = 0x00; in nozomi_card_exit()
1539 write_mem32(dc->port[PORT_CTRL].ul_addr[0], (u32 *)&ctrl, 2); in nozomi_card_exit()
1547 kfifo_free(&dc->port[i].fifo_ul); in nozomi_card_exit()
1564 struct port *port = get_port_by_tty(tty); in set_rts() local
1566 port->ctrl_ul.RTS = rts; in set_rts()
1567 port->update_flow_control = 1; in set_rts()
1573 struct port *port = get_port_by_tty(tty); in set_dtr() local
1577 port->ctrl_ul.DTR = dtr; in set_dtr()
1578 port->update_flow_control = 1; in set_dtr()
1590 struct port *port = get_port_by_tty(tty); in ntty_install() local
1593 if (!port || !dc || dc->state != NOZOMI_STATE_READY) in ntty_install()
1597 tty->driver_data = port; in ntty_install()
1608 struct port *port = container_of(tport, struct port, port); in ntty_activate() local
1609 struct nozomi *dc = port->dc; in ntty_activate()
1612 DBG1("open: %d", port->token_dl); in ntty_activate()
1614 dc->last_ier = dc->last_ier | port->token_dl; in ntty_activate()
1624 struct port *port = tty->driver_data; in ntty_open() local
1625 return tty_port_open(&port->port, tty, filp); in ntty_open()
1630 struct port *port = container_of(tport, struct port, port); in ntty_shutdown() local
1631 struct nozomi *dc = port->dc; in ntty_shutdown()
1634 DBG1("close: %d", port->token_dl); in ntty_shutdown()
1636 dc->last_ier &= ~(port->token_dl); in ntty_shutdown()
1645 struct port *port = tty->driver_data; in ntty_close() local
1646 if (port) in ntty_close()
1647 tty_port_close(&port->port, tty, filp); in ntty_close()
1652 struct port *port = tty->driver_data; in ntty_hangup() local
1653 tty_port_hangup(&port->port); in ntty_hangup()
1665 struct port *port = tty->driver_data; in ntty_write() local
1670 if (!dc || !port) in ntty_write()
1673 rval = kfifo_in(&port->fifo_ul, (unsigned char *)buffer, count); in ntty_write()
1677 if (port == &(dc->port[PORT_MDM])) { in ntty_write()
1678 if (port->ctrl_dl.CTS) { in ntty_write()
1704 struct port *port = tty->driver_data; in ntty_write_room() local
1709 room = kfifo_avail(&port->fifo_ul); in ntty_write_room()
1717 const struct port *port = tty->driver_data; in ntty_tiocmget() local
1718 const struct ctrl_dl *ctrl_dl = &port->ctrl_dl; in ntty_tiocmget()
1719 const struct ctrl_ul *ctrl_ul = &port->ctrl_ul; in ntty_tiocmget()
1753 static int ntty_cflags_changed(struct port *port, unsigned long flags, in ntty_cflags_changed() argument
1756 const struct async_icount cnow = port->tty_icount; in ntty_cflags_changed()
1772 struct port *port = tty->driver_data; in ntty_tiocgicount() local
1773 const struct async_icount cnow = port->tty_icount; in ntty_tiocgicount()
1792 struct port *port = tty->driver_data; in ntty_ioctl() local
1799 struct async_icount cprev = port->tty_icount; in ntty_ioctl()
1801 rval = wait_event_interruptible(port->tty_wait, in ntty_ioctl()
1802 ntty_cflags_changed(port, arg, &cprev)); in ntty_ioctl()
1848 struct port *port = tty->driver_data; in ntty_chars_in_buffer() local
1852 if (unlikely(!dc || !port)) { in ntty_chars_in_buffer()
1856 rval = kfifo_len(&port->fifo_ul); in ntty_chars_in_buffer()