Lines Matching refs:dch
16 struct dchannel *dch = container_of(ws, struct dchannel, workq); in dchannel_bh() local
20 if (test_and_clear_bit(FLG_RECVQUEUE, &dch->Flags)) { in dchannel_bh()
21 while ((skb = skb_dequeue(&dch->rqueue))) { in dchannel_bh()
22 if (likely(dch->dev.D.peer)) { in dchannel_bh()
23 err = dch->dev.D.recv(dch->dev.D.peer, skb); in dchannel_bh()
30 if (test_and_clear_bit(FLG_PHCHANGE, &dch->Flags)) { in dchannel_bh()
31 if (dch->phfunc) in dchannel_bh()
32 dch->phfunc(dch); in dchannel_bh()
211 recv_Dchannel(struct dchannel *dch) in recv_Dchannel() argument
215 if (dch->rx_skb->len < 2) { /* at least 2 for sapi / tei */ in recv_Dchannel()
216 dev_kfree_skb(dch->rx_skb); in recv_Dchannel()
217 dch->rx_skb = NULL; in recv_Dchannel()
220 hh = mISDN_HEAD_P(dch->rx_skb); in recv_Dchannel()
222 hh->id = get_sapi_tei(dch->rx_skb->data); in recv_Dchannel()
223 skb_queue_tail(&dch->rqueue, dch->rx_skb); in recv_Dchannel()
224 dch->rx_skb = NULL; in recv_Dchannel()
225 schedule_event(dch, FLG_RECVQUEUE); in recv_Dchannel()
230 recv_Echannel(struct dchannel *ech, struct dchannel *dch) in recv_Echannel() argument
242 skb_queue_tail(&dch->rqueue, ech->rx_skb); in recv_Echannel()
244 schedule_event(dch, FLG_RECVQUEUE); in recv_Echannel()
284 recv_Dchannel_skb(struct dchannel *dch, struct sk_buff *skb) in recv_Dchannel_skb() argument
286 skb_queue_tail(&dch->rqueue, skb); in recv_Dchannel_skb()
287 schedule_event(dch, FLG_RECVQUEUE); in recv_Dchannel_skb()
307 confirm_Dsend(struct dchannel *dch) in confirm_Dsend() argument
311 skb = _alloc_mISDN_skb(PH_DATA_CNF, mISDN_HEAD_ID(dch->tx_skb), in confirm_Dsend()
315 mISDN_HEAD_ID(dch->tx_skb)); in confirm_Dsend()
318 skb_queue_tail(&dch->rqueue, skb); in confirm_Dsend()
319 schedule_event(dch, FLG_RECVQUEUE); in confirm_Dsend()
323 get_next_dframe(struct dchannel *dch) in get_next_dframe() argument
325 dch->tx_idx = 0; in get_next_dframe()
326 dch->tx_skb = skb_dequeue(&dch->squeue); in get_next_dframe()
327 if (dch->tx_skb) { in get_next_dframe()
328 confirm_Dsend(dch); in get_next_dframe()
331 dch->tx_skb = NULL; in get_next_dframe()
332 test_and_clear_bit(FLG_TX_BUSY, &dch->Flags); in get_next_dframe()