Lines Matching refs:dch

269 	struct dchannel *dch = &hw->dch;
273 dch->dev.nrbchan * sizeof(struct ph_info_ch), GFP_ATOMIC);
274 phi->dch.ch.protocol = hw->protocol;
275 phi->dch.ch.Flags = dch->Flags;
276 phi->dch.state = dch->state;
277 phi->dch.num_bch = dch->dev.nrbchan;
278 for (i = 0; i < dch->dev.nrbchan; i++) {
282 _queue_data(&dch->dev.D, MPH_INFORMATION_IND, MISDN_ID_ANY,
283 sizeof(struct ph_info_dch) + dch->dev.nrbchan *
295 struct dchannel *dch = container_of(dev, struct dchannel, dev);
297 struct hfcsusb *hw = dch->hw;
308 ret = dchannel_senddata(dch, skb);
324 if (test_bit(FLG_ACTIVE, &dch->Flags)) {
325 _queue_data(&dch->dev.D,
332 &dch->Flags);
336 ret = l1_event(dch->l1, hh->prim);
344 test_and_clear_bit(FLG_L2_ACTIVATED, &dch->Flags);
349 skb_queue_purge(&dch->squeue);
350 if (dch->tx_skb) {
351 dev_kfree_skb(dch->tx_skb);
352 dch->tx_skb = NULL;
354 dch->tx_idx = 0;
355 if (dch->rx_skb) {
356 dev_kfree_skb(dch->rx_skb);
357 dch->rx_skb = NULL;
359 test_and_clear_bit(FLG_TX_BUSY, &dch->Flags);
362 if (test_and_clear_bit(FLG_L1_BUSY, &dch->Flags))
363 dchannel_sched_event(&hc->dch, D_CLEARBUSY);
367 ret = l1_event(dch->l1, hh->prim);
382 hfc_l1callback(struct dchannel *dch, u_int cmd)
384 struct hfcsusb *hw = dch->hw;
398 skb_queue_purge(&dch->squeue);
399 if (dch->tx_skb) {
400 dev_kfree_skb(dch->tx_skb);
401 dch->tx_skb = NULL;
403 dch->tx_idx = 0;
404 if (dch->rx_skb) {
405 dev_kfree_skb(dch->rx_skb);
406 dch->rx_skb = NULL;
408 test_and_clear_bit(FLG_TX_BUSY, &dch->Flags);
411 test_and_set_bit(FLG_ACTIVE, &dch->Flags);
412 _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
416 test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
417 _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
421 if (dch->debug & DEBUG_HW)
438 hw->name, __func__, hw->dch.dev.id, rq->adr.channel,
443 test_and_clear_bit(FLG_ACTIVE, &hw->dch.Flags);
461 err = create_l1(&hw->dch, hfc_l1callback);
473 if (((ch->protocol == ISDN_P_NT_S0) && (hw->dch.state == 3)) ||
474 ((ch->protocol == ISDN_P_TE_S0) && (hw->dch.state == 7)))
547 struct dchannel *dch = container_of(dev, struct dchannel, dev);
548 struct hfcsusb *hw = dch->hw;
552 if (dch->debug & DEBUG_HW)
571 hw->name, __func__, hw->dch.dev.id,
585 if (dch->debug & DEBUG_HW)
597 ph_state_te(struct dchannel *dch)
599 struct hfcsusb *hw = dch->hw;
602 if (dch->state <= HFC_MAX_TE_LAYER1_STATE)
604 HFC_TE_LAYER1_STATES[dch->state]);
607 hw->name, __func__, dch->state);
610 switch (dch->state) {
612 l1_event(dch->l1, HW_RESET_IND);
615 l1_event(dch->l1, HW_DEACT_IND);
619 l1_event(dch->l1, ANYSIGNAL);
622 l1_event(dch->l1, INFO2);
625 l1_event(dch->l1, INFO4_P8);
628 if (dch->state == 7)
638 ph_state_nt(struct dchannel *dch)
640 struct hfcsusb *hw = dch->hw;
643 if (dch->state <= HFC_MAX_NT_LAYER1_STATE)
646 HFC_NT_LAYER1_STATES[dch->state]);
650 hw->name, __func__, dch->state);
653 switch (dch->state) {
655 test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
656 test_and_clear_bit(FLG_L2_ACTIVATED, &dch->Flags);
666 hfcsusb_ph_command(dch->hw, HFC_L1_DEACTIVATE_NT);
677 test_and_set_bit(FLG_ACTIVE, &dch->Flags);
678 _queue_data(&dch->dev.D, PH_ACTIVATE_IND,
693 ph_state(struct dchannel *dch)
695 struct hfcsusb *hw = dch->hw;
698 ph_state_nt(dch);
700 ph_state_te(dch);
801 if (hw->dch.state == 3)
802 _queue_data(&hw->dch.dev.D, PH_ACTIVATE_IND,
856 "dch(%p) bch(%p) ech(%p)\n",
858 fifo->dch, fifo->bch, fifo->ech);
863 if ((!!fifo->dch + !!fifo->bch + !!fifo->ech) != 1) {
870 if (fifo->dch) {
871 rx_skb = fifo->dch->rx_skb;
872 maxlen = fifo->dch->maxlen;
889 if (fifo->dch)
890 fifo->dch->rx_skb = rx_skb;
904 if (fifo->dch || fifo->ech) {
948 if (fifo->dch)
949 recv_Dchannel(fifo->dch);
954 &hw->dch);
1096 (s0_state != hw->dch.state)) {
1097 hw->dch.state = s0_state;
1098 schedule_event(&hw->dch, FLG_PHCHANGE);
1167 if (hw->initdone && ((buf[0] >> 4) != hw->dch.state)) {
1168 hw->dch.state = (buf[0] >> 4);
1169 schedule_event(&hw->dch, FLG_PHCHANGE);
1214 if (fifo->dch) {
1215 tx_skb = fifo->dch->tx_skb;
1216 tx_idx = &fifo->dch->tx_idx;
1365 if (fifo->dch && get_next_dframe(fifo->dch))
1366 tx_skb = fifo->dch->tx_skb;
1392 schedule_event(&hw->dch, FLG_PHCHANGE);
1781 l1_event(hw->dch.l1, CLOSE_CHANNEL);
1783 mISDN_unregister_device(&hw->dch.dev);
1786 mISDN_freedchannel(&hw->dch);
1868 mISDN_initdchannel(&hw->dch, MAX_DFRAME_LEN_L1, ph_state);
1869 hw->dch.debug = debug & 0xFFFF;
1870 hw->dch.hw = hw;
1871 hw->dch.dev.Dprotocols = (1 << ISDN_P_TE_S0) | (1 << ISDN_P_NT_S0);
1872 hw->dch.dev.D.send = hfcusb_l2l1D;
1873 hw->dch.dev.D.ctrl = hfc_dctrl;
1879 hw->dch.dev.Bprotocols = (1 << (ISDN_P_B_RAW & ISDN_P_B_MASK)) |
1881 hw->dch.dev.nrbchan = 2;
1884 set_channelmap(i + 1, hw->dch.dev.channelmap);
1891 list_add(&hw->bch[i].ch.list, &hw->dch.dev.bchannels);
1898 hw->fifos[HFCUSB_D_TX].dch = &hw->dch;
1899 hw->fifos[HFCUSB_D_RX].dch = &hw->dch;
1912 err = mISDN_register_device(&hw->dch.dev, parent, hw->name);
1925 mISDN_freedchannel(&hw->dch);