Lines Matching refs:dlci
98 struct gsm_dlci *dlci; member
159 void (*data)(struct gsm_dlci *dlci, u8 *data, int len);
160 void (*prev_data)(struct gsm_dlci *dlci, u8 *data, int len);
241 struct gsm_dlci *dlci[NUM_DLCI]; member
431 static u8 gsm_encode_modem(const struct gsm_dlci *dlci) in gsm_encode_modem() argument
435 if (dlci->throttled) in gsm_encode_modem()
437 if (dlci->modem_tx & TIOCM_DTR) in gsm_encode_modem()
439 if (dlci->modem_tx & TIOCM_RTS) in gsm_encode_modem()
441 if (dlci->modem_tx & TIOCM_RI) in gsm_encode_modem()
443 if (dlci->modem_tx & TIOCM_CD) in gsm_encode_modem()
732 static void __gsm_data_queue(struct gsm_dlci *dlci, struct gsm_msg *msg) in __gsm_data_queue() argument
734 struct gsm_mux *gsm = dlci->gsm; in __gsm_data_queue()
783 static void gsm_data_queue(struct gsm_dlci *dlci, struct gsm_msg *msg) in gsm_data_queue() argument
786 spin_lock_irqsave(&dlci->gsm->tx_lock, flags); in gsm_data_queue()
787 __gsm_data_queue(dlci, msg); in gsm_data_queue()
788 spin_unlock_irqrestore(&dlci->gsm->tx_lock, flags); in gsm_data_queue()
803 static int gsm_dlci_data_output(struct gsm_mux *gsm, struct gsm_dlci *dlci) in gsm_dlci_data_output() argument
808 int h = dlci->adaption - 1; in gsm_dlci_data_output()
812 len = kfifo_len(dlci->fifo); in gsm_dlci_data_output()
822 msg = gsm_data_alloc(gsm, dlci->addr, size, gsm->ftype); in gsm_dlci_data_output()
828 switch (dlci->adaption) { in gsm_dlci_data_output()
833 *dp++ = gsm_encode_modem(dlci); in gsm_dlci_data_output()
836 WARN_ON(kfifo_out_locked(dlci->fifo, dp , len, &dlci->lock) != len); in gsm_dlci_data_output()
837 __gsm_data_queue(dlci, msg); in gsm_dlci_data_output()
857 struct gsm_dlci *dlci) in gsm_dlci_data_output_framed() argument
866 if (dlci->adaption == 4) in gsm_dlci_data_output_framed()
870 if (dlci->skb == NULL) { in gsm_dlci_data_output_framed()
871 dlci->skb = skb_dequeue_tail(&dlci->skb_list); in gsm_dlci_data_output_framed()
872 if (dlci->skb == NULL) in gsm_dlci_data_output_framed()
876 len = dlci->skb->len + overhead; in gsm_dlci_data_output_framed()
880 if (dlci->adaption == 3) { in gsm_dlci_data_output_framed()
882 dev_kfree_skb_any(dlci->skb); in gsm_dlci_data_output_framed()
883 dlci->skb = NULL; in gsm_dlci_data_output_framed()
891 msg = gsm_data_alloc(gsm, dlci->addr, size, gsm->ftype); in gsm_dlci_data_output_framed()
896 skb_queue_tail(&dlci->skb_list, dlci->skb); in gsm_dlci_data_output_framed()
897 dlci->skb = NULL; in gsm_dlci_data_output_framed()
902 if (dlci->adaption == 4) { /* Interruptible framed (Packetised Data) */ in gsm_dlci_data_output_framed()
907 memcpy(dp, dlci->skb->data, len); in gsm_dlci_data_output_framed()
908 skb_pull(dlci->skb, len); in gsm_dlci_data_output_framed()
909 __gsm_data_queue(dlci, msg); in gsm_dlci_data_output_framed()
911 dev_kfree_skb_any(dlci->skb); in gsm_dlci_data_output_framed()
912 dlci->skb = NULL; in gsm_dlci_data_output_framed()
937 struct gsm_dlci *dlci; in gsm_dlci_data_sweep() local
941 dlci = gsm->dlci[i]; in gsm_dlci_data_sweep()
942 if (dlci == NULL || dlci->constipated) { in gsm_dlci_data_sweep()
946 if (dlci->adaption < 3 && !dlci->net) in gsm_dlci_data_sweep()
947 len = gsm_dlci_data_output(gsm, dlci); in gsm_dlci_data_sweep()
949 len = gsm_dlci_data_output_framed(gsm, dlci); in gsm_dlci_data_sweep()
967 static void gsm_dlci_data_kick(struct gsm_dlci *dlci) in gsm_dlci_data_kick() argument
972 if (dlci->constipated) in gsm_dlci_data_kick()
975 spin_lock_irqsave(&dlci->gsm->tx_lock, flags); in gsm_dlci_data_kick()
977 sweep = (dlci->gsm->tx_bytes < TX_THRESH_LO); in gsm_dlci_data_kick()
978 if (dlci->gsm->tx_bytes == 0) { in gsm_dlci_data_kick()
979 if (dlci->net) in gsm_dlci_data_kick()
980 gsm_dlci_data_output_framed(dlci->gsm, dlci); in gsm_dlci_data_kick()
982 gsm_dlci_data_output(dlci->gsm, dlci); in gsm_dlci_data_kick()
985 gsm_dlci_data_sweep(dlci->gsm); in gsm_dlci_data_kick()
986 spin_unlock_irqrestore(&dlci->gsm->tx_lock, flags); in gsm_dlci_data_kick()
1014 gsm_data_queue(gsm->dlci[0], msg); in gsm_control_reply()
1027 static void gsm_process_modem(struct tty_struct *tty, struct gsm_dlci *dlci, in gsm_process_modem() argument
1048 if (fc && !dlci->constipated) { in gsm_process_modem()
1050 dlci->constipated = 1; in gsm_process_modem()
1051 } else if (!fc && dlci->constipated) { in gsm_process_modem()
1052 dlci->constipated = 0; in gsm_process_modem()
1053 gsm_dlci_data_kick(dlci); in gsm_process_modem()
1068 if ((mlines & TIOCM_CD) == 0 && (dlci->modem_rx & TIOCM_CD)) in gsm_process_modem()
1073 tty_insert_flip_char(&dlci->port, 0, TTY_BREAK); in gsm_process_modem()
1074 dlci->modem_rx = mlines; in gsm_process_modem()
1094 struct gsm_dlci *dlci; in gsm_control_modem() local
1111 if (addr == 0 || addr >= NUM_DLCI || gsm->dlci[addr] == NULL) in gsm_control_modem()
1113 dlci = gsm->dlci[addr]; in gsm_control_modem()
1130 tty = tty_port_tty_get(&dlci->port); in gsm_control_modem()
1131 gsm_process_modem(tty, dlci, modem, clen); in gsm_control_modem()
1169 if (addr == 0 || addr >= NUM_DLCI || gsm->dlci[addr] == NULL) in gsm_control_rls()
1176 port = &gsm->dlci[addr]->port; in gsm_control_rls()
1190 static void gsm_dlci_begin_close(struct gsm_dlci *dlci);
1212 struct gsm_dlci *dlci = gsm->dlci[0]; in gsm_control_message() local
1214 if (dlci) { in gsm_control_message()
1215 dlci->dead = 1; in gsm_control_message()
1217 gsm_dlci_begin_close(dlci); in gsm_control_message()
1315 gsm_data_queue(gsm->dlci[0], msg); in gsm_control_transmit()
1426 static void gsm_dlci_close(struct gsm_dlci *dlci) in gsm_dlci_close() argument
1428 del_timer(&dlci->t1); in gsm_dlci_close()
1430 pr_debug("DLCI %d goes closed.\n", dlci->addr); in gsm_dlci_close()
1431 dlci->state = DLCI_CLOSED; in gsm_dlci_close()
1432 if (dlci->addr != 0) { in gsm_dlci_close()
1433 tty_port_tty_hangup(&dlci->port, false); in gsm_dlci_close()
1434 kfifo_reset(dlci->fifo); in gsm_dlci_close()
1436 dlci->gsm->dead = 1; in gsm_dlci_close()
1437 wake_up(&dlci->gsm->event); in gsm_dlci_close()
1449 static void gsm_dlci_open(struct gsm_dlci *dlci) in gsm_dlci_open() argument
1453 del_timer(&dlci->t1); in gsm_dlci_open()
1455 dlci->state = DLCI_OPEN; in gsm_dlci_open()
1457 pr_debug("DLCI %d goes open.\n", dlci->addr); in gsm_dlci_open()
1458 wake_up(&dlci->gsm->event); in gsm_dlci_open()
1474 struct gsm_dlci *dlci = (struct gsm_dlci *)data; in gsm_dlci_t1() local
1475 struct gsm_mux *gsm = dlci->gsm; in gsm_dlci_t1()
1477 switch (dlci->state) { in gsm_dlci_t1()
1479 dlci->retries--; in gsm_dlci_t1()
1480 if (dlci->retries) { in gsm_dlci_t1()
1481 gsm_command(dlci->gsm, dlci->addr, SABM|PF); in gsm_dlci_t1()
1482 mod_timer(&dlci->t1, jiffies + gsm->t1 * HZ / 100); in gsm_dlci_t1()
1484 gsm_dlci_close(dlci); in gsm_dlci_t1()
1487 dlci->retries--; in gsm_dlci_t1()
1488 if (dlci->retries) { in gsm_dlci_t1()
1489 gsm_command(dlci->gsm, dlci->addr, DISC|PF); in gsm_dlci_t1()
1490 mod_timer(&dlci->t1, jiffies + gsm->t1 * HZ / 100); in gsm_dlci_t1()
1492 gsm_dlci_close(dlci); in gsm_dlci_t1()
1507 static void gsm_dlci_begin_open(struct gsm_dlci *dlci) in gsm_dlci_begin_open() argument
1509 struct gsm_mux *gsm = dlci->gsm; in gsm_dlci_begin_open()
1510 if (dlci->state == DLCI_OPEN || dlci->state == DLCI_OPENING) in gsm_dlci_begin_open()
1512 dlci->retries = gsm->n2; in gsm_dlci_begin_open()
1513 dlci->state = DLCI_OPENING; in gsm_dlci_begin_open()
1514 gsm_command(dlci->gsm, dlci->addr, SABM|PF); in gsm_dlci_begin_open()
1515 mod_timer(&dlci->t1, jiffies + gsm->t1 * HZ / 100); in gsm_dlci_begin_open()
1529 static void gsm_dlci_begin_close(struct gsm_dlci *dlci) in gsm_dlci_begin_close() argument
1531 struct gsm_mux *gsm = dlci->gsm; in gsm_dlci_begin_close()
1532 if (dlci->state == DLCI_CLOSED || dlci->state == DLCI_CLOSING) in gsm_dlci_begin_close()
1534 dlci->retries = gsm->n2; in gsm_dlci_begin_close()
1535 dlci->state = DLCI_CLOSING; in gsm_dlci_begin_close()
1536 gsm_command(dlci->gsm, dlci->addr, DISC|PF); in gsm_dlci_begin_close()
1537 mod_timer(&dlci->t1, jiffies + gsm->t1 * HZ / 100); in gsm_dlci_begin_close()
1551 static void gsm_dlci_data(struct gsm_dlci *dlci, u8 *data, int clen) in gsm_dlci_data() argument
1554 struct tty_port *port = &dlci->port; in gsm_dlci_data()
1561 switch (dlci->adaption) { in gsm_dlci_data()
1578 gsm_process_modem(tty, dlci, modem, clen); in gsm_dlci_data()
1601 static void gsm_dlci_command(struct gsm_dlci *dlci, u8 *data, int len) in gsm_dlci_command() argument
1615 gsm_control_message(dlci->gsm, command, in gsm_dlci_command()
1618 gsm_control_response(dlci->gsm, command, in gsm_dlci_command()
1641 struct gsm_dlci *dlci = kzalloc(sizeof(struct gsm_dlci), GFP_ATOMIC); in gsm_dlci_alloc() local
1642 if (dlci == NULL) in gsm_dlci_alloc()
1644 spin_lock_init(&dlci->lock); in gsm_dlci_alloc()
1645 mutex_init(&dlci->mutex); in gsm_dlci_alloc()
1646 dlci->fifo = &dlci->_fifo; in gsm_dlci_alloc()
1647 if (kfifo_alloc(&dlci->_fifo, 4096, GFP_KERNEL) < 0) { in gsm_dlci_alloc()
1648 kfree(dlci); in gsm_dlci_alloc()
1652 skb_queue_head_init(&dlci->skb_list); in gsm_dlci_alloc()
1653 init_timer(&dlci->t1); in gsm_dlci_alloc()
1654 dlci->t1.function = gsm_dlci_t1; in gsm_dlci_alloc()
1655 dlci->t1.data = (unsigned long)dlci; in gsm_dlci_alloc()
1656 tty_port_init(&dlci->port); in gsm_dlci_alloc()
1657 dlci->port.ops = &gsm_port_ops; in gsm_dlci_alloc()
1658 dlci->gsm = gsm; in gsm_dlci_alloc()
1659 dlci->addr = addr; in gsm_dlci_alloc()
1660 dlci->adaption = gsm->adaption; in gsm_dlci_alloc()
1661 dlci->state = DLCI_CLOSED; in gsm_dlci_alloc()
1663 dlci->data = gsm_dlci_data; in gsm_dlci_alloc()
1665 dlci->data = gsm_dlci_command; in gsm_dlci_alloc()
1666 gsm->dlci[addr] = dlci; in gsm_dlci_alloc()
1667 return dlci; in gsm_dlci_alloc()
1680 struct gsm_dlci *dlci = container_of(port, struct gsm_dlci, port); in gsm_dlci_free() local
1682 del_timer_sync(&dlci->t1); in gsm_dlci_free()
1683 dlci->gsm->dlci[dlci->addr] = NULL; in gsm_dlci_free()
1684 kfifo_free(dlci->fifo); in gsm_dlci_free()
1685 while ((dlci->skb = skb_dequeue(&dlci->skb_list))) in gsm_dlci_free()
1686 dev_kfree_skb(dlci->skb); in gsm_dlci_free()
1687 kfree(dlci); in gsm_dlci_free()
1690 static inline void dlci_get(struct gsm_dlci *dlci) in dlci_get() argument
1692 tty_port_get(&dlci->port); in dlci_get()
1695 static inline void dlci_put(struct gsm_dlci *dlci) in dlci_put() argument
1697 tty_port_put(&dlci->port); in dlci_put()
1700 static void gsm_destroy_network(struct gsm_dlci *dlci);
1711 static void gsm_dlci_release(struct gsm_dlci *dlci) in gsm_dlci_release() argument
1713 struct tty_struct *tty = tty_port_tty_get(&dlci->port); in gsm_dlci_release()
1715 mutex_lock(&dlci->mutex); in gsm_dlci_release()
1716 gsm_destroy_network(dlci); in gsm_dlci_release()
1717 mutex_unlock(&dlci->mutex); in gsm_dlci_release()
1721 tty_port_tty_set(&dlci->port, NULL); in gsm_dlci_release()
1724 dlci->state = DLCI_CLOSED; in gsm_dlci_release()
1725 dlci_put(dlci); in gsm_dlci_release()
1744 struct gsm_dlci *dlci; in gsm_queue() local
1774 dlci = gsm->dlci[address]; in gsm_queue()
1780 if (dlci == NULL) in gsm_queue()
1781 dlci = gsm_dlci_alloc(gsm, address); in gsm_queue()
1782 if (dlci == NULL) in gsm_queue()
1784 if (dlci->dead) in gsm_queue()
1788 gsm_dlci_open(dlci); in gsm_queue()
1794 if (dlci == NULL || dlci->state == DLCI_CLOSED) { in gsm_queue()
1800 gsm_dlci_close(dlci); in gsm_queue()
1804 if (cr == 0 || dlci == NULL) in gsm_queue()
1806 switch (dlci->state) { in gsm_queue()
1808 gsm_dlci_close(dlci); in gsm_queue()
1811 gsm_dlci_open(dlci); in gsm_queue()
1819 if (dlci == NULL) in gsm_queue()
1821 gsm_dlci_close(dlci); in gsm_queue()
1831 if (dlci == NULL || dlci->state != DLCI_OPEN) { in gsm_queue()
1835 dlci->data(dlci, gsm->buf, gsm->len); in gsm_queue()
2034 struct gsm_dlci *dlci = gsm->dlci[0]; in gsm_cleanup_mux() local
2054 if (dlci) { in gsm_cleanup_mux()
2061 if (dlci) { in gsm_cleanup_mux()
2062 dlci->dead = 1; in gsm_cleanup_mux()
2063 gsm_dlci_begin_close(dlci); in gsm_cleanup_mux()
2065 dlci->state == DLCI_CLOSED); in gsm_cleanup_mux()
2070 if (gsm->dlci[i]) in gsm_cleanup_mux()
2071 gsm_dlci_release(gsm->dlci[i]); in gsm_cleanup_mux()
2090 struct gsm_dlci *dlci; in gsm_activate_mux() local
2116 dlci = gsm_dlci_alloc(gsm, 0); in gsm_activate_mux()
2117 if (dlci == NULL) in gsm_activate_mux()
2542 gsm_dlci_begin_close(gsm->dlci[0]); in gsmld_config()
2545 gsm->dlci[0]->state == DLCI_CLOSED); in gsmld_config()
2574 gsm_dlci_begin_open(gsm->dlci[0]); in gsmld_config()
2636 static void dlci_net_free(struct gsm_dlci *dlci) in dlci_net_free() argument
2638 if (!dlci->net) { in dlci_net_free()
2642 dlci->adaption = dlci->prev_adaption; in dlci_net_free()
2643 dlci->data = dlci->prev_data; in dlci_net_free()
2644 free_netdev(dlci->net); in dlci_net_free()
2645 dlci->net = NULL; in dlci_net_free()
2650 struct gsm_dlci *dlci; in net_free() local
2653 dlci = mux_net->dlci; in net_free()
2655 if (dlci->net) { in net_free()
2656 unregister_netdev(dlci->net); in net_free()
2657 dlci_net_free(dlci); in net_free()
2675 struct gsm_dlci *dlci = mux_net->dlci; in gsm_mux_net_start_xmit() local
2678 skb_queue_head(&dlci->skb_list, skb); in gsm_mux_net_start_xmit()
2681 gsm_dlci_data_kick(dlci); in gsm_mux_net_start_xmit()
2698 static void gsm_mux_rx_netchar(struct gsm_dlci *dlci, in gsm_mux_rx_netchar() argument
2701 struct net_device *net = dlci->net; in gsm_mux_rx_netchar()
2733 if ((new_mtu < 8) || (new_mtu > mux_net->dlci->gsm->mtu)) in gsm_change_mtu()
2761 static void gsm_destroy_network(struct gsm_dlci *dlci) in gsm_destroy_network() argument
2766 if (!dlci->net) in gsm_destroy_network()
2768 mux_net = netdev_priv(dlci->net); in gsm_destroy_network()
2774 static int gsm_create_network(struct gsm_dlci *dlci, struct gsm_netconfig *nc) in gsm_create_network() argument
2785 if (dlci->adaption > 2) in gsm_create_network()
2805 net->mtu = dlci->gsm->mtu; in gsm_create_network()
2807 mux_net->dlci = dlci; in gsm_create_network()
2812 dlci->prev_adaption = dlci->adaption; in gsm_create_network()
2813 dlci->prev_data = dlci->data; in gsm_create_network()
2814 dlci->adaption = nc->adaption; in gsm_create_network()
2815 dlci->data = gsm_mux_rx_netchar; in gsm_create_network()
2816 dlci->net = net; in gsm_create_network()
2822 dlci_net_free(dlci); in gsm_create_network()
2851 static int gsmtty_modem_update(struct gsm_dlci *dlci, u8 brk) in gsmtty_modem_update() argument
2861 modembits[1] = dlci->addr << 2 | 3; /* DLCI, EA, 1 */ in gsmtty_modem_update()
2862 modembits[2] = gsm_encode_modem(dlci) << 1 | EA; in gsmtty_modem_update()
2865 ctrl = gsm_control_send(dlci->gsm, CMD_MSC, modembits, len + 1); in gsmtty_modem_update()
2868 return gsm_control_wait(dlci->gsm, ctrl); in gsmtty_modem_update()
2873 struct gsm_dlci *dlci = container_of(port, struct gsm_dlci, port); in gsm_carrier_raised() local
2875 if (dlci->state != DLCI_OPEN) in gsm_carrier_raised()
2879 return dlci->modem_rx & TIOCM_CD; in gsm_carrier_raised()
2884 struct gsm_dlci *dlci = container_of(port, struct gsm_dlci, port); in gsm_dtr_rts() local
2885 unsigned int modem_tx = dlci->modem_tx; in gsm_dtr_rts()
2890 if (modem_tx != dlci->modem_tx) { in gsm_dtr_rts()
2891 dlci->modem_tx = modem_tx; in gsm_dtr_rts()
2892 gsmtty_modem_update(dlci, 0); in gsm_dtr_rts()
2905 struct gsm_dlci *dlci; in gsmtty_install() local
2928 if (gsm->dlci[0] && gsm->dlci[0]->state != DLCI_OPEN) { in gsmtty_install()
2932 dlci = gsm->dlci[line]; in gsmtty_install()
2933 if (dlci == NULL) { in gsmtty_install()
2935 dlci = gsm_dlci_alloc(gsm, line); in gsmtty_install()
2937 if (dlci == NULL) { in gsmtty_install()
2941 ret = tty_port_install(&dlci->port, driver, tty); in gsmtty_install()
2944 dlci_put(dlci); in gsmtty_install()
2949 dlci_get(dlci); in gsmtty_install()
2950 dlci_get(gsm->dlci[0]); in gsmtty_install()
2952 tty->driver_data = dlci; in gsmtty_install()
2960 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_open() local
2961 struct tty_port *port = &dlci->port; in gsmtty_open()
2966 dlci->modem_rx = 0; in gsmtty_open()
2971 gsm_dlci_begin_open(dlci); in gsmtty_open()
2978 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_close() local
2981 if (dlci == NULL) in gsmtty_close()
2983 if (dlci->state == DLCI_CLOSED) in gsmtty_close()
2985 mutex_lock(&dlci->mutex); in gsmtty_close()
2986 gsm_destroy_network(dlci); in gsmtty_close()
2987 mutex_unlock(&dlci->mutex); in gsmtty_close()
2988 gsm = dlci->gsm; in gsmtty_close()
2989 if (tty_port_close_start(&dlci->port, tty, filp) == 0) in gsmtty_close()
2991 gsm_dlci_begin_close(dlci); in gsmtty_close()
2992 if (test_bit(ASYNCB_INITIALIZED, &dlci->port.flags)) { in gsmtty_close()
2994 tty_port_lower_dtr_rts(&dlci->port); in gsmtty_close()
2996 tty_port_close_end(&dlci->port, tty); in gsmtty_close()
2997 tty_port_tty_set(&dlci->port, NULL); in gsmtty_close()
3003 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_hangup() local
3004 if (dlci->state == DLCI_CLOSED) in gsmtty_hangup()
3006 tty_port_hangup(&dlci->port); in gsmtty_hangup()
3007 gsm_dlci_begin_close(dlci); in gsmtty_hangup()
3014 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_write() local
3015 if (dlci->state == DLCI_CLOSED) in gsmtty_write()
3018 sent = kfifo_in_locked(dlci->fifo, buf, len, &dlci->lock); in gsmtty_write()
3020 gsm_dlci_data_kick(dlci); in gsmtty_write()
3026 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_write_room() local
3027 if (dlci->state == DLCI_CLOSED) in gsmtty_write_room()
3029 return TX_SIZE - kfifo_len(dlci->fifo); in gsmtty_write_room()
3034 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_chars_in_buffer() local
3035 if (dlci->state == DLCI_CLOSED) in gsmtty_chars_in_buffer()
3037 return kfifo_len(dlci->fifo); in gsmtty_chars_in_buffer()
3042 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_flush_buffer() local
3043 if (dlci->state == DLCI_CLOSED) in gsmtty_flush_buffer()
3049 kfifo_reset(dlci->fifo); in gsmtty_flush_buffer()
3062 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_tiocmget() local
3063 if (dlci->state == DLCI_CLOSED) in gsmtty_tiocmget()
3065 return dlci->modem_rx; in gsmtty_tiocmget()
3071 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_tiocmset() local
3072 unsigned int modem_tx = dlci->modem_tx; in gsmtty_tiocmset()
3074 if (dlci->state == DLCI_CLOSED) in gsmtty_tiocmset()
3079 if (modem_tx != dlci->modem_tx) { in gsmtty_tiocmset()
3080 dlci->modem_tx = modem_tx; in gsmtty_tiocmset()
3081 return gsmtty_modem_update(dlci, 0); in gsmtty_tiocmset()
3090 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_ioctl() local
3094 if (dlci->state == DLCI_CLOSED) in gsmtty_ioctl()
3102 mutex_lock(&dlci->mutex); in gsmtty_ioctl()
3103 index = gsm_create_network(dlci, &nc); in gsmtty_ioctl()
3104 mutex_unlock(&dlci->mutex); in gsmtty_ioctl()
3111 mutex_lock(&dlci->mutex); in gsmtty_ioctl()
3112 gsm_destroy_network(dlci); in gsmtty_ioctl()
3113 mutex_unlock(&dlci->mutex); in gsmtty_ioctl()
3122 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_set_termios() local
3123 if (dlci->state == DLCI_CLOSED) in gsmtty_set_termios()
3135 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_throttle() local
3136 if (dlci->state == DLCI_CLOSED) in gsmtty_throttle()
3139 dlci->modem_tx &= ~TIOCM_DTR; in gsmtty_throttle()
3140 dlci->throttled = 1; in gsmtty_throttle()
3142 gsmtty_modem_update(dlci, 0); in gsmtty_throttle()
3147 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_unthrottle() local
3148 if (dlci->state == DLCI_CLOSED) in gsmtty_unthrottle()
3151 dlci->modem_tx |= TIOCM_DTR; in gsmtty_unthrottle()
3152 dlci->throttled = 0; in gsmtty_unthrottle()
3154 gsmtty_modem_update(dlci, 0); in gsmtty_unthrottle()
3159 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_break_ctl() local
3161 if (dlci->state == DLCI_CLOSED) in gsmtty_break_ctl()
3172 return gsmtty_modem_update(dlci, encode); in gsmtty_break_ctl()
3177 struct gsm_dlci *dlci = tty->driver_data; in gsmtty_cleanup() local
3178 struct gsm_mux *gsm = dlci->gsm; in gsmtty_cleanup()
3180 dlci_put(dlci); in gsmtty_cleanup()
3181 dlci_put(gsm->dlci[0]); in gsmtty_cleanup()