Lines Matching refs:dch
25 struct dchannel *dch = container_of(ws, struct dchannel, workq); in dchannel_bh() local
29 if (test_and_clear_bit(FLG_RECVQUEUE, &dch->Flags)) { in dchannel_bh()
30 while ((skb = skb_dequeue(&dch->rqueue))) { in dchannel_bh()
31 if (likely(dch->dev.D.peer)) { in dchannel_bh()
32 err = dch->dev.D.recv(dch->dev.D.peer, skb); in dchannel_bh()
39 if (test_and_clear_bit(FLG_PHCHANGE, &dch->Flags)) { in dchannel_bh()
40 if (dch->phfunc) in dchannel_bh()
41 dch->phfunc(dch); in dchannel_bh()
220 recv_Dchannel(struct dchannel *dch) in recv_Dchannel() argument
224 if (dch->rx_skb->len < 2) { /* at least 2 for sapi / tei */ in recv_Dchannel()
225 dev_kfree_skb(dch->rx_skb); in recv_Dchannel()
226 dch->rx_skb = NULL; in recv_Dchannel()
229 hh = mISDN_HEAD_P(dch->rx_skb); in recv_Dchannel()
231 hh->id = get_sapi_tei(dch->rx_skb->data); in recv_Dchannel()
232 skb_queue_tail(&dch->rqueue, dch->rx_skb); in recv_Dchannel()
233 dch->rx_skb = NULL; in recv_Dchannel()
234 schedule_event(dch, FLG_RECVQUEUE); in recv_Dchannel()
239 recv_Echannel(struct dchannel *ech, struct dchannel *dch) in recv_Echannel() argument
251 skb_queue_tail(&dch->rqueue, ech->rx_skb); in recv_Echannel()
253 schedule_event(dch, FLG_RECVQUEUE); in recv_Echannel()
293 recv_Dchannel_skb(struct dchannel *dch, struct sk_buff *skb) in recv_Dchannel_skb() argument
295 skb_queue_tail(&dch->rqueue, skb); in recv_Dchannel_skb()
296 schedule_event(dch, FLG_RECVQUEUE); in recv_Dchannel_skb()
316 confirm_Dsend(struct dchannel *dch) in confirm_Dsend() argument
320 skb = _alloc_mISDN_skb(PH_DATA_CNF, mISDN_HEAD_ID(dch->tx_skb), in confirm_Dsend()
324 mISDN_HEAD_ID(dch->tx_skb)); in confirm_Dsend()
327 skb_queue_tail(&dch->rqueue, skb); in confirm_Dsend()
328 schedule_event(dch, FLG_RECVQUEUE); in confirm_Dsend()
332 get_next_dframe(struct dchannel *dch) in get_next_dframe() argument
334 dch->tx_idx = 0; in get_next_dframe()
335 dch->tx_skb = skb_dequeue(&dch->squeue); in get_next_dframe()
336 if (dch->tx_skb) { in get_next_dframe()
337 confirm_Dsend(dch); in get_next_dframe()
340 dch->tx_skb = NULL; in get_next_dframe()
341 test_and_clear_bit(FLG_TX_BUSY, &dch->Flags); in get_next_dframe()