• Home
  • Raw
  • Download

Lines Matching refs:dch

83 	struct dchannel		dch;  member
98 card->dch.debug = debug; in _set_debug()
203 schedule_event(&card->dch, FLG_PHCHANGE); in W6692_new_ph()
207 W6692_ph_bh(struct dchannel *dch) in W6692_ph_bh() argument
209 struct w6692_hw *card = dch->hw; in W6692_ph_bh()
213 dch->state = 0; in W6692_ph_bh()
214 l1_event(dch->l1, HW_RESET_IND); in W6692_ph_bh()
217 dch->state = 3; in W6692_ph_bh()
218 l1_event(dch->l1, HW_DEACT_CNF); in W6692_ph_bh()
221 dch->state = 3; in W6692_ph_bh()
222 l1_event(dch->l1, HW_DEACT_IND); in W6692_ph_bh()
225 dch->state = 4; in W6692_ph_bh()
226 l1_event(dch->l1, HW_POWERUP_IND); in W6692_ph_bh()
229 if (dch->state <= 5) { in W6692_ph_bh()
230 dch->state = 5; in W6692_ph_bh()
231 l1_event(dch->l1, ANYSIGNAL); in W6692_ph_bh()
233 dch->state = 8; in W6692_ph_bh()
234 l1_event(dch->l1, LOSTFRAMING); in W6692_ph_bh()
238 dch->state = 6; in W6692_ph_bh()
239 l1_event(dch->l1, INFO2); in W6692_ph_bh()
242 dch->state = 7; in W6692_ph_bh()
243 l1_event(dch->l1, INFO4_P8); in W6692_ph_bh()
246 dch->state = 7; in W6692_ph_bh()
247 l1_event(dch->l1, INFO4_P10); in W6692_ph_bh()
251 card->name, card->state, dch->state); in W6692_ph_bh()
254 pr_debug("%s: TE newstate %02x\n", card->name, dch->state); in W6692_ph_bh()
260 struct dchannel *dch = &card->dch; in W6692_empty_Dfifo() local
264 if (!dch->rx_skb) { in W6692_empty_Dfifo()
265 dch->rx_skb = mI_alloc_skb(card->dch.maxlen, GFP_ATOMIC); in W6692_empty_Dfifo()
266 if (!dch->rx_skb) { in W6692_empty_Dfifo()
272 if ((dch->rx_skb->len + count) >= dch->maxlen) { in W6692_empty_Dfifo()
274 dch->rx_skb->len + count); in W6692_empty_Dfifo()
278 ptr = skb_put(dch->rx_skb, count); in W6692_empty_Dfifo()
291 struct dchannel *dch = &card->dch; in W6692_fill_Dfifo() local
297 if (!dch->tx_skb) in W6692_fill_Dfifo()
299 count = dch->tx_skb->len - dch->tx_idx; in W6692_fill_Dfifo()
306 ptr = dch->tx_skb->data + dch->tx_idx; in W6692_fill_Dfifo()
307 dch->tx_idx += count; in W6692_fill_Dfifo()
310 if (test_and_set_bit(FLG_BUSY_TIMER, &dch->Flags)) { in W6692_fill_Dfifo()
312 del_timer(&dch->timer); in W6692_fill_Dfifo()
314 init_timer(&dch->timer); in W6692_fill_Dfifo()
315 dch->timer.expires = jiffies + ((DBUSY_TIMER_VALUE * HZ) / 1000); in W6692_fill_Dfifo()
316 add_timer(&dch->timer); in W6692_fill_Dfifo()
327 struct dchannel *dch = &card->dch; in d_retransmit() local
329 if (test_and_clear_bit(FLG_BUSY_TIMER, &dch->Flags)) in d_retransmit()
330 del_timer(&dch->timer); in d_retransmit()
332 if (test_and_clear_bit(FLG_L1_BUSY, &dch->Flags)) in d_retransmit()
333 dchannel_sched_event(dch, D_CLEARBUSY); in d_retransmit()
335 if (test_bit(FLG_TX_BUSY, &dch->Flags)) { in d_retransmit()
337 dch->tx_idx = 0; in d_retransmit()
339 } else if (dch->tx_skb) { /* should not happen */ in d_retransmit()
341 test_and_set_bit(FLG_TX_BUSY, &dch->Flags); in d_retransmit()
342 dch->tx_idx = 0; in d_retransmit()
346 if (get_next_dframe(dch)) in d_retransmit()
361 card->dch.err_rx++; in handle_rxD()
367 card->dch.err_crc++; in handle_rxD()
373 card->dch.err_rx++; in handle_rxD()
376 if (card->dch.rx_skb) in handle_rxD()
377 dev_kfree_skb(card->dch.rx_skb); in handle_rxD()
378 card->dch.rx_skb = NULL; in handle_rxD()
385 recv_Dchannel(&card->dch); in handle_rxD()
391 if (test_and_clear_bit(FLG_BUSY_TIMER, &card->dch.Flags)) in handle_txD()
392 del_timer(&card->dch.timer); in handle_txD()
393 if (card->dch.tx_skb && card->dch.tx_idx < card->dch.tx_skb->len) { in handle_txD()
396 if (card->dch.tx_skb) in handle_txD()
397 dev_kfree_skb(card->dch.tx_skb); in handle_txD()
398 if (get_next_dframe(&card->dch)) in handle_txD()
406 struct dchannel *dch = &card->dch; in handle_statusD() local
416 dch->err_tx++; in handle_statusD()
437 dch->state, v1); in handle_statusD()
822 dbusy_timer_handler(struct dchannel *dch) in dbusy_timer_handler() argument
824 struct w6692_hw *card = dch->hw; in dbusy_timer_handler()
828 if (test_bit(FLG_BUSY_TIMER, &dch->Flags)) { in dbusy_timer_handler()
835 test_and_set_bit(FLG_L1_BUSY, &dch->Flags); in dbusy_timer_handler()
838 test_and_clear_bit(FLG_BUSY_TIMER, &dch->Flags); in dbusy_timer_handler()
839 if (dch->tx_idx) in dbusy_timer_handler()
840 dch->tx_idx = 0; in dbusy_timer_handler()
855 card->dch.timer.function = (void *)dbusy_timer_handler; in initW6692()
856 card->dch.timer.data = (u_long)&card->dch; in initW6692()
857 init_timer(&card->dch.timer); in initW6692()
1034 ret = l1_event(card->dch.l1, HW_TIMER3_VALUE | (cq->p1 & 0xff)); in channel_ctrl()
1081 struct dchannel *dch = container_of(dev, struct dchannel, dev); in w6692_l2l1D() local
1082 struct w6692_hw *card = container_of(dch, struct w6692_hw, dch); in w6692_l2l1D()
1091 ret = dchannel_senddata(dch, skb); in w6692_l2l1D()
1102 ret = l1_event(dch->l1, hh->prim); in w6692_l2l1D()
1105 test_and_clear_bit(FLG_L2_ACTIVATED, &dch->Flags); in w6692_l2l1D()
1106 ret = l1_event(dch->l1, hh->prim); in w6692_l2l1D()
1116 w6692_l1callback(struct dchannel *dch, u32 cmd) in w6692_l1callback() argument
1118 struct w6692_hw *card = container_of(dch, struct w6692_hw, dch); in w6692_l1callback()
1141 skb_queue_purge(&dch->squeue); in w6692_l1callback()
1142 if (dch->tx_skb) { in w6692_l1callback()
1143 dev_kfree_skb(dch->tx_skb); in w6692_l1callback()
1144 dch->tx_skb = NULL; in w6692_l1callback()
1146 dch->tx_idx = 0; in w6692_l1callback()
1147 if (dch->rx_skb) { in w6692_l1callback()
1148 dev_kfree_skb(dch->rx_skb); in w6692_l1callback()
1149 dch->rx_skb = NULL; in w6692_l1callback()
1151 test_and_clear_bit(FLG_TX_BUSY, &dch->Flags); in w6692_l1callback()
1152 if (test_and_clear_bit(FLG_BUSY_TIMER, &dch->Flags)) in w6692_l1callback()
1153 del_timer(&dch->timer); in w6692_l1callback()
1161 test_and_set_bit(FLG_ACTIVE, &dch->Flags); in w6692_l1callback()
1162 _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL, in w6692_l1callback()
1166 test_and_clear_bit(FLG_ACTIVE, &dch->Flags); in w6692_l1callback()
1167 _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL, in w6692_l1callback()
1182 card->dch.dev.id, caller); in open_dchannel()
1188 rq->ch = &card->dch.dev.D; in open_dchannel()
1190 if (card->dch.state == 7) in open_dchannel()
1200 struct dchannel *dch = container_of(dev, struct dchannel, dev); in w6692_dctrl() local
1201 struct w6692_hw *card = container_of(dch, struct w6692_hw, dch); in w6692_dctrl()
1220 dch->dev.id, __builtin_return_address(0)); in w6692_dctrl()
1279 l1_event(card->dch.l1, CLOSE_CHANNEL); in release_card()
1280 mISDN_unregister_device(&card->dch.dev); in release_card()
1284 mISDN_freedchannel(&card->dch); in release_card()
1306 mISDN_initdchannel(&card->dch, MAX_DFRAME_LEN_L1, W6692_ph_bh); in setup_instance()
1307 card->dch.dev.Dprotocols = (1 << ISDN_P_TE_S0); in setup_instance()
1308 card->dch.dev.D.send = w6692_l2l1D; in setup_instance()
1309 card->dch.dev.D.ctrl = w6692_dctrl; in setup_instance()
1310 card->dch.dev.Bprotocols = (1 << (ISDN_P_B_RAW & ISDN_P_B_MASK)) | in setup_instance()
1312 card->dch.hw = card; in setup_instance()
1313 card->dch.dev.nrbchan = 2; in setup_instance()
1322 set_channelmap(i + 1, card->dch.dev.channelmap); in setup_instance()
1323 list_add(&card->bc[i].bch.ch.list, &card->dch.dev.bchannels); in setup_instance()
1328 err = mISDN_register_device(&card->dch.dev, &card->pdev->dev, in setup_instance()
1335 err = create_l1(&card->dch, w6692_l1callback); in setup_instance()
1344 mISDN_unregister_device(&card->dch.dev); in setup_instance()
1350 mISDN_freedchannel(&card->dch); in setup_instance()