• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/isdn/hardware/mISDN/

Lines Matching defs:dch

38 #define ReadISAC(is, o)		(is->read_reg(is->dch.hw, o + is->off))
39 #define WriteISAC(is, o, v) (is->write_reg(is->dch.hw, o + is->off, v))
63 schedule_event(&isac->dch, FLG_PHCHANGE);
67 isac_ph_state_bh(struct dchannel *dch)
69 struct isac_hw *isac = container_of(dch, struct isac_hw, dch);
74 dch->state = 0;
75 l1_event(dch->l1, HW_RESET_IND);
78 dch->state = 3;
79 l1_event(dch->l1, HW_DEACT_CNF);
82 dch->state = 3;
83 l1_event(dch->l1, HW_DEACT_IND);
86 dch->state = 4;
87 l1_event(dch->l1, HW_POWERUP_IND);
90 if (dch->state <= 5) {
91 dch->state = 5;
92 l1_event(dch->l1, ANYSIGNAL);
94 dch->state = 8;
95 l1_event(dch->l1, LOSTFRAMING);
99 dch->state = 6;
100 l1_event(dch->l1, INFO2);
103 dch->state = 7;
104 l1_event(dch->l1, INFO4_P8);
107 dch->state = 7;
108 l1_event(dch->l1, INFO4_P10);
111 pr_debug("%s: TE newstate %x\n", isac->name, dch->state);
121 if (!isac->dch.rx_skb) {
122 isac->dch.rx_skb = mI_alloc_skb(isac->dch.maxlen, GFP_ATOMIC);
123 if (!isac->dch.rx_skb) {
129 if ((isac->dch.rx_skb->len + count) >= isac->dch.maxlen) {
131 isac->dch.rx_skb->len + count);
135 ptr = skb_put(isac->dch.rx_skb, count);
136 isac->read_fifo(isac->dch.hw, isac->off, ptr, count);
138 if (isac->dch.debug & DEBUG_HW_DFIFO) {
153 if (!isac->dch.tx_skb)
155 count = isac->dch.tx_skb->len - isac->dch.tx_idx;
165 ptr = isac->dch.tx_skb->data + isac->dch.tx_idx;
166 isac->dch.tx_idx += count;
167 isac->write_fifo(isac->dch.hw, isac->off, ptr, count);
169 if (test_and_set_bit(FLG_BUSY_TIMER, &isac->dch.Flags)) {
171 del_timer(&isac->dch.timer);
173 init_timer(&isac->dch.timer);
174 isac->dch.timer.expires = jiffies + ((DBUSY_TIMER_VALUE * HZ)/1000);
175 add_timer(&isac->dch.timer);
176 if (isac->dch.debug & DEBUG_HW_DFIFO) {
195 isac->dch.err_rx++;
201 isac->dch.err_crc++;
205 if (isac->dch.rx_skb)
206 dev_kfree_skb(isac->dch.rx_skb);
207 isac->dch.rx_skb = NULL;
213 recv_Dchannel(&isac->dch);
220 if (test_and_clear_bit(FLG_BUSY_TIMER, &isac->dch.Flags))
221 del_timer(&isac->dch.timer);
222 if (isac->dch.tx_skb && isac->dch.tx_idx < isac->dch.tx_skb->len) {
225 if (isac->dch.tx_skb)
226 dev_kfree_skb(isac->dch.tx_skb);
227 if (get_next_dframe(&isac->dch))
235 if (test_and_clear_bit(FLG_BUSY_TIMER, &isac->dch.Flags))
236 del_timer(&isac->dch.timer);
237 if (test_bit(FLG_TX_BUSY, &isac->dch.Flags)) {
239 isac->dch.tx_idx = 0;
241 } else if (isac->dch.tx_skb) { /* should not happen */
243 test_and_set_bit(FLG_TX_BUSY, &isac->dch.Flags);
244 isac->dch.tx_idx = 0;
248 if (get_next_dframe(&isac->dch))
326 ret = isac->monitor(isac->dch.hw, MONITOR_RX_0,
344 ret = isac->monitor(isac->dch.hw, MONITOR_RX_1,
365 ret = isac->monitor(isac->dch.hw,
376 ret = isac->monitor(isac->dch.hw,
398 ret = isac->monitor(isac->dch.hw,
409 ret = isac->monitor(isac->dch.hw,
474 isac->dch.err_rx++;
476 isac->dch.err_crc++;
479 if (isac->dch.rx_skb)
480 dev_kfree_skb(isac->dch.rx_skb);
481 isac->dch.rx_skb = NULL;
487 if (isac->dch.rx_skb) {
488 skb_trim(isac->dch.rx_skb, isac->dch.rx_skb->len - 1);
490 isac->dch.rx_skb->len);
491 recv_Dchannel(&isac->dch);
511 isac->dch.err_tx++;
518 isac->dch.err_tx++;
554 isac->dch.err_tx++;
570 struct dchannel *dch = container_of(dev, struct dchannel, dev);
571 struct isac_hw *isac = container_of(dch, struct isac_hw, dch);
580 ret = dchannel_senddata(dch, skb);
591 ret = l1_event(dch->l1, hh->prim);
594 test_and_clear_bit(FLG_L2_ACTIVATED, &dch->Flags);
595 ret = l1_event(dch->l1, hh->prim);
637 isac_l1cmd(struct dchannel *dch, u32 cmd)
639 struct isac_hw *isac = container_of(dch, struct isac_hw, dch);
665 skb_queue_purge(&dch->squeue);
666 if (dch->tx_skb) {
667 dev_kfree_skb(dch->tx_skb);
668 dch->tx_skb = NULL;
670 dch->tx_idx = 0;
671 if (dch->rx_skb) {
672 dev_kfree_skb(dch->rx_skb);
673 dch->rx_skb = NULL;
675 test_and_clear_bit(FLG_TX_BUSY, &dch->Flags);
676 if (test_and_clear_bit(FLG_BUSY_TIMER, &dch->Flags))
677 del_timer(&dch->timer);
685 test_and_set_bit(FLG_ACTIVE, &dch->Flags);
686 _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
690 test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
691 _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
709 if (isac->dch.timer.function != NULL) {
710 del_timer(&isac->dch.timer);
711 isac->dch.timer.function = NULL;
717 if (isac->dch.l1)
718 l1_event(isac->dch.l1, CLOSE_CHANNEL);
719 mISDN_freedchannel(&isac->dch);
728 if (test_bit(FLG_BUSY_TIMER, &isac->dch.Flags)) {
735 test_and_set_bit(FLG_L1_BUSY, &isac->dch.Flags);
738 test_and_clear_bit(FLG_BUSY_TIMER, &isac->dch.Flags);
739 if (isac->dch.tx_idx)
740 isac->dch.tx_idx = 0;
755 isac->dch.dev.id, __builtin_return_address(1));
761 rq->ch = &isac->dch.dev.D;
763 if (isac->dch.state == 7)
779 if (!isac->dch.l1) {
780 err = create_l1(&isac->dch, isac_l1cmd);
786 isac->dch.timer.function = (void *) dbusy_timer_handler;
787 isac->dch.timer.data = (long)isac;
788 init_timer(&isac->dch.timer);
807 if (isac->dch.debug & DEBUG_HW)
832 if (isac->dch.debug & DEBUG_HW)
864 mISDN_initdchannel(&isac->dch, MAX_DFRAME_LEN_L1, isac_ph_state_bh);
865 isac->dch.hw = hw;
866 isac->dch.dev.D.send = isac_l1hw;
871 isac->dch.dev.Dprotocols = (1 << ISDN_P_TE_S0);
872 isac->dch.dev.nrbchan = 2;
1550 struct dchannel *dch = container_of(dev, struct dchannel, dev);
1551 struct isac_hw *isac = container_of(dch, struct isac_hw, dch);
1571 dch->dev.id, __builtin_return_address(0));
1591 if (ipac->isac.dch.debug & DEBUG_HW)
1616 ipac->isac.dch.dev.D.ctrl = ipac_dctrl;
1620 set_channelmap(i + 1, ipac->isac.dch.dev.channelmap);
1622 &ipac->isac.dch.dev.bchannels);