Lines Matching defs:dch

248 	struct dchannel *dch = &hw->dch;
251 phi = kzalloc(struct_size(phi, bch, dch->dev.nrbchan), GFP_ATOMIC);
255 phi->dch.ch.protocol = hw->protocol;
256 phi->dch.ch.Flags = dch->Flags;
257 phi->dch.state = dch->state;
258 phi->dch.num_bch = dch->dev.nrbchan;
259 for (i = 0; i < dch->dev.nrbchan; i++) {
263 _queue_data(&dch->dev.D, MPH_INFORMATION_IND, MISDN_ID_ANY,
264 struct_size(phi, bch, dch->dev.nrbchan), phi, GFP_ATOMIC);
277 struct dchannel *dch = container_of(dev, struct dchannel, dev);
279 struct hfcsusb *hw = dch->hw;
290 ret = dchannel_senddata(dch, skb);
306 if (test_bit(FLG_ACTIVE, &dch->Flags)) {
307 _queue_data(&dch->dev.D,
314 &dch->Flags);
318 ret = l1_event(dch->l1, hh->prim);
326 test_and_clear_bit(FLG_L2_ACTIVATED, &dch->Flags);
334 skb_queue_splice_init(&dch->squeue, &free_queue);
335 if (dch->tx_skb) {
336 __skb_queue_tail(&free_queue, dch->tx_skb);
337 dch->tx_skb = NULL;
339 dch->tx_idx = 0;
340 if (dch->rx_skb) {
341 __skb_queue_tail(&free_queue, dch->rx_skb);
342 dch->rx_skb = NULL;
344 test_and_clear_bit(FLG_TX_BUSY, &dch->Flags);
348 if (test_and_clear_bit(FLG_L1_BUSY, &dch->Flags))
349 dchannel_sched_event(&hc->dch, D_CLEARBUSY);
353 ret = l1_event(dch->l1, hh->prim);
367 hfc_l1callback(struct dchannel *dch, u_int cmd)
369 struct hfcsusb *hw = dch->hw;
383 skb_queue_purge(&dch->squeue);
384 if (dch->tx_skb) {
385 dev_kfree_skb(dch->tx_skb);
386 dch->tx_skb = NULL;
388 dch->tx_idx = 0;
389 if (dch->rx_skb) {
390 dev_kfree_skb(dch->rx_skb);
391 dch->rx_skb = NULL;
393 test_and_clear_bit(FLG_TX_BUSY, &dch->Flags);
396 test_and_set_bit(FLG_ACTIVE, &dch->Flags);
397 _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
401 test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
402 _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
406 if (dch->debug & DEBUG_HW)
422 hw->name, __func__, hw->dch.dev.id, rq->adr.channel,
427 test_and_clear_bit(FLG_ACTIVE, &hw->dch.Flags);
445 err = create_l1(&hw->dch, hfc_l1callback);
457 if (((ch->protocol == ISDN_P_NT_S0) && (hw->dch.state == 3)) ||
458 ((ch->protocol == ISDN_P_TE_S0) && (hw->dch.state == 7)))
524 struct dchannel *dch = container_of(dev, struct dchannel, dev);
525 struct hfcsusb *hw = dch->hw;
529 if (dch->debug & DEBUG_HW)
548 hw->name, __func__, hw->dch.dev.id,
562 if (dch->debug & DEBUG_HW)
574 ph_state_te(struct dchannel *dch)
576 struct hfcsusb *hw = dch->hw;
579 if (dch->state <= HFC_MAX_TE_LAYER1_STATE)
581 HFC_TE_LAYER1_STATES[dch->state]);
584 hw->name, __func__, dch->state);
587 switch (dch->state) {
589 l1_event(dch->l1, HW_RESET_IND);
592 l1_event(dch->l1, HW_DEACT_IND);
596 l1_event(dch->l1, ANYSIGNAL);
599 l1_event(dch->l1, INFO2);
602 l1_event(dch->l1, INFO4_P8);
605 if (dch->state == 7)
615 ph_state_nt(struct dchannel *dch)
617 struct hfcsusb *hw = dch->hw;
620 if (dch->state <= HFC_MAX_NT_LAYER1_STATE)
623 HFC_NT_LAYER1_STATES[dch->state]);
627 hw->name, __func__, dch->state);
630 switch (dch->state) {
632 test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
633 test_and_clear_bit(FLG_L2_ACTIVATED, &dch->Flags);
643 hfcsusb_ph_command(dch->hw, HFC_L1_DEACTIVATE_NT);
654 test_and_set_bit(FLG_ACTIVE, &dch->Flags);
655 _queue_data(&dch->dev.D, PH_ACTIVATE_IND,
670 ph_state(struct dchannel *dch)
672 struct hfcsusb *hw = dch->hw;
675 ph_state_nt(dch);
677 ph_state_te(dch);
777 if (hw->dch.state == 3)
778 _queue_data(&hw->dch.dev.D, PH_ACTIVATE_IND,
816 "dch(%p) bch(%p) ech(%p)\n",
818 fifo->dch, fifo->bch, fifo->ech);
823 if ((!!fifo->dch + !!fifo->bch + !!fifo->ech) != 1) {
830 if (fifo->dch) {
831 rx_skb = fifo->dch->rx_skb;
832 maxlen = fifo->dch->maxlen;
860 if (fifo->dch || fifo->ech) {
864 if (fifo->dch)
865 fifo->dch->rx_skb = rx_skb;
909 if (fifo->dch)
910 recv_Dchannel(fifo->dch);
916 &hw->dch);
1058 (s0_state != hw->dch.state)) {
1059 hw->dch.state = s0_state;
1060 schedule_event(&hw->dch, FLG_PHCHANGE);
1130 if (hw->initdone && ((buf[0] >> 4) != hw->dch.state)) {
1131 hw->dch.state = (buf[0] >> 4);
1132 schedule_event(&hw->dch, FLG_PHCHANGE);
1178 if (fifo->dch) {
1179 tx_skb = fifo->dch->tx_skb;
1180 tx_idx = &fifo->dch->tx_idx;
1339 if (fifo->dch && get_next_dframe(fifo->dch))
1340 tx_skb = fifo->dch->tx_skb;
1362 schedule_event(&hw->dch, FLG_PHCHANGE);
1762 l1_event(hw->dch.l1, CLOSE_CHANNEL);
1764 mISDN_unregister_device(&hw->dch.dev);
1767 mISDN_freedchannel(&hw->dch);
1848 mISDN_initdchannel(&hw->dch, MAX_DFRAME_LEN_L1, ph_state);
1849 hw->dch.debug = debug & 0xFFFF;
1850 hw->dch.hw = hw;
1851 hw->dch.dev.Dprotocols = (1 << ISDN_P_TE_S0) | (1 << ISDN_P_NT_S0);
1852 hw->dch.dev.D.send = hfcusb_l2l1D;
1853 hw->dch.dev.D.ctrl = hfc_dctrl;
1859 hw->dch.dev.Bprotocols = (1 << (ISDN_P_B_RAW & ISDN_P_B_MASK)) |
1861 hw->dch.dev.nrbchan = 2;
1864 set_channelmap(i + 1, hw->dch.dev.channelmap);
1871 list_add(&hw->bch[i].ch.list, &hw->dch.dev.bchannels);
1878 hw->fifos[HFCUSB_D_TX].dch = &hw->dch;
1879 hw->fifos[HFCUSB_D_RX].dch = &hw->dch;
1892 err = mISDN_register_device(&hw->dch.dev, parent, hw->name);
1905 mISDN_freedchannel(&hw->dch);