Lines Matching defs:dch

67 	struct dchannel		dch;
82 card->dch.debug = debug;
187 schedule_event(&card->dch, FLG_PHCHANGE);
191 W6692_ph_bh(struct dchannel *dch)
193 struct w6692_hw *card = dch->hw;
197 dch->state = 0;
198 l1_event(dch->l1, HW_RESET_IND);
201 dch->state = 3;
202 l1_event(dch->l1, HW_DEACT_CNF);
205 dch->state = 3;
206 l1_event(dch->l1, HW_DEACT_IND);
209 dch->state = 4;
210 l1_event(dch->l1, HW_POWERUP_IND);
213 if (dch->state <= 5) {
214 dch->state = 5;
215 l1_event(dch->l1, ANYSIGNAL);
217 dch->state = 8;
218 l1_event(dch->l1, LOSTFRAMING);
222 dch->state = 6;
223 l1_event(dch->l1, INFO2);
226 dch->state = 7;
227 l1_event(dch->l1, INFO4_P8);
230 dch->state = 7;
231 l1_event(dch->l1, INFO4_P10);
234 pr_debug("%s: TE unknown state %02x dch state %02x\n",
235 card->name, card->state, dch->state);
238 pr_debug("%s: TE newstate %02x\n", card->name, dch->state);
244 struct dchannel *dch = &card->dch;
248 if (!dch->rx_skb) {
249 dch->rx_skb = mI_alloc_skb(card->dch.maxlen, GFP_ATOMIC);
250 if (!dch->rx_skb) {
256 if ((dch->rx_skb->len + count) >= dch->maxlen) {
258 dch->rx_skb->len + count);
262 ptr = skb_put(dch->rx_skb, count);
275 struct dchannel *dch = &card->dch;
281 if (!dch->tx_skb)
283 count = dch->tx_skb->len - dch->tx_idx;
290 ptr = dch->tx_skb->data + dch->tx_idx;
291 dch->tx_idx += count;
294 if (test_and_set_bit(FLG_BUSY_TIMER, &dch->Flags)) {
296 del_timer(&dch->timer);
298 dch->timer.expires = jiffies + ((DBUSY_TIMER_VALUE * HZ) / 1000);
299 add_timer(&dch->timer);
310 struct dchannel *dch = &card->dch;
312 if (test_and_clear_bit(FLG_BUSY_TIMER, &dch->Flags))
313 del_timer(&dch->timer);
315 if (test_and_clear_bit(FLG_L1_BUSY, &dch->Flags))
316 dchannel_sched_event(dch, D_CLEARBUSY);
318 if (test_bit(FLG_TX_BUSY, &dch->Flags)) {
320 dch->tx_idx = 0;
322 } else if (dch->tx_skb) { /* should not happen */
324 test_and_set_bit(FLG_TX_BUSY, &dch->Flags);
325 dch->tx_idx = 0;
329 if (get_next_dframe(dch))
344 card->dch.err_rx++;
350 card->dch.err_crc++;
356 card->dch.err_rx++;
359 dev_kfree_skb(card->dch.rx_skb);
360 card->dch.rx_skb = NULL;
367 recv_Dchannel(&card->dch);
373 if (test_and_clear_bit(FLG_BUSY_TIMER, &card->dch.Flags))
374 del_timer(&card->dch.timer);
375 if (card->dch.tx_skb && card->dch.tx_idx < card->dch.tx_skb->len) {
378 dev_kfree_skb(card->dch.tx_skb);
379 if (get_next_dframe(&card->dch))
387 struct dchannel *dch = &card->dch;
397 dch->err_tx++;
418 dch->state, v1);
804 struct dchannel *dch = from_timer(dch, t, timer);
805 struct w6692_hw *card = dch->hw;
809 if (test_bit(FLG_BUSY_TIMER, &dch->Flags)) {
816 test_and_set_bit(FLG_L1_BUSY, &dch->Flags);
819 test_and_clear_bit(FLG_BUSY_TIMER, &dch->Flags);
820 if (dch->tx_idx)
821 dch->tx_idx = 0;
836 timer_setup(&card->dch.timer, dbusy_timer_handler, 0);
1013 ret = l1_event(card->dch.l1, HW_TIMER3_VALUE | (cq->p1 & 0xff));
1060 struct dchannel *dch = container_of(dev, struct dchannel, dev);
1061 struct w6692_hw *card = container_of(dch, struct w6692_hw, dch);
1070 ret = dchannel_senddata(dch, skb);
1081 ret = l1_event(dch->l1, hh->prim);
1084 test_and_clear_bit(FLG_L2_ACTIVATED, &dch->Flags);
1085 ret = l1_event(dch->l1, hh->prim);
1095 w6692_l1callback(struct dchannel *dch, u32 cmd)
1097 struct w6692_hw *card = container_of(dch, struct w6692_hw, dch);
1120 skb_queue_purge(&dch->squeue);
1121 if (dch->tx_skb) {
1122 dev_kfree_skb(dch->tx_skb);
1123 dch->tx_skb = NULL;
1125 dch->tx_idx = 0;
1126 if (dch->rx_skb) {
1127 dev_kfree_skb(dch->rx_skb);
1128 dch->rx_skb = NULL;
1130 test_and_clear_bit(FLG_TX_BUSY, &dch->Flags);
1131 if (test_and_clear_bit(FLG_BUSY_TIMER, &dch->Flags))
1132 del_timer(&dch->timer);
1140 test_and_set_bit(FLG_ACTIVE, &dch->Flags);
1141 _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
1145 test_and_clear_bit(FLG_ACTIVE, &dch->Flags);
1146 _queue_data(&dch->dev.D, cmd, MISDN_ID_ANY, 0, NULL,
1161 card->dch.dev.id, caller);
1167 rq->ch = &card->dch.dev.D;
1169 if (card->dch.state == 7)
1179 struct dchannel *dch = container_of(dev, struct dchannel, dev);
1180 struct w6692_hw *card = container_of(dch, struct w6692_hw, dch);
1199 dch->dev.id, __builtin_return_address(0));
1258 l1_event(card->dch.l1, CLOSE_CHANNEL);
1259 mISDN_unregister_device(&card->dch.dev);
1263 mISDN_freedchannel(&card->dch);
1285 mISDN_initdchannel(&card->dch, MAX_DFRAME_LEN_L1, W6692_ph_bh);
1286 card->dch.dev.Dprotocols = (1 << ISDN_P_TE_S0);
1287 card->dch.dev.D.send = w6692_l2l1D;
1288 card->dch.dev.D.ctrl = w6692_dctrl;
1289 card->dch.dev.Bprotocols = (1 << (ISDN_P_B_RAW & ISDN_P_B_MASK)) |
1291 card->dch.hw = card;
1292 card->dch.dev.nrbchan = 2;
1301 set_channelmap(i + 1, card->dch.dev.channelmap);
1302 list_add(&card->bc[i].bch.ch.list, &card->dch.dev.bchannels);
1307 err = mISDN_register_device(&card->dch.dev, &card->pdev->dev,
1314 err = create_l1(&card->dch, w6692_l1callback);
1323 mISDN_unregister_device(&card->dch.dev);
1329 mISDN_freedchannel(&card->dch);