• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/isdn/hisax/

Lines Matching refs:bcs

194 hfcpci_sched_event(struct BCState *bcs, int event)
196 test_and_set_bit(event, &bcs->event);
197 schedule_work(&bcs->tqueue);
207 if (cs->bcs[0].mode && (cs->bcs[0].channel == channel))
208 return (&cs->bcs[0]);
209 else if (cs->bcs[1].mode && (cs->bcs[1].channel == channel))
210 return (&cs->bcs[1]);
273 hfcpci_empty_fifo(struct BCState *bcs, bzfifo_type * bz, u_char * bdata, int count)
277 struct IsdnCardState *cs = bcs->cs;
293 bcs->err_inv++;
400 hfcpci_empty_fifo_trans(struct BCState *bcs, bzfifo_type * bz, u_char * bdata)
440 skb_queue_tail(&bcs->rqueue, skb);
441 hfcpci_sched_event(bcs, B_RCVBUFREADY);
452 main_rec_hfcpci(struct BCState *bcs)
454 struct IsdnCardState *cs = bcs->cs;
463 if ((bcs->channel) && (!cs->hw.hfcpci.bswapped)) {
475 debugl1(cs, "rec_data %d blocked", bcs->channel);
481 bcs->channel, bz->f1, bz->f2);
490 bcs->channel, zp->z1, zp->z2, rcnt);
491 if ((skb = hfcpci_empty_fifo(bcs, bz, bdata, rcnt))) {
492 skb_queue_tail(&bcs->rqueue, skb);
493 hfcpci_sched_event(bcs, B_RCVBUFREADY);
507 } else if (bcs->mode == L1_MODE_TRANS)
508 receive = hfcpci_empty_fifo_trans(bcs, bz, bdata);
592 hfcpci_fill_fifo(struct BCState *bcs)
594 struct IsdnCardState *cs = bcs->cs;
602 if (!bcs->tx_skb)
604 if (bcs->tx_skb->len <= 0)
607 if ((bcs->channel) && (!cs->hw.hfcpci.bswapped)) {
615 if (bcs->mode == L1_MODE_TRANS) {
620 bcs->channel, *z1t, *z2t);
626 while ((fcnt < 2 * HFCPCI_BTRANS_THRESHOLD) && (bcs->tx_skb)) {
627 if (bcs->tx_skb->len < B_FIFO_SIZE - fcnt) {
629 count = bcs->tx_skb->len;
634 src = bcs->tx_skb->data; /* source pointer */
647 bcs->tx_cnt -= bcs->tx_skb->len;
648 fcnt += bcs->tx_skb->len;
652 bcs->channel, bcs->tx_skb->len);
654 if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
655 (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
657 spin_lock_irqsave(&bcs->aclock, flags);
658 bcs->ackcnt += bcs->tx_skb->len;
659 spin_unlock_irqrestore(&bcs->aclock, flags);
660 schedule_event(bcs, B_ACKPENDING);
663 dev_kfree_skb_any(bcs->tx_skb);
664 bcs->tx_skb = skb_dequeue(&bcs->squeue); /* fetch next data */
666 test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
671 bcs->channel, bz->f1, bz->f2,
689 bcs->channel, bcs->tx_skb->len,
692 if (count < bcs->tx_skb->len) {
697 count = bcs->tx_skb->len; /* get frame len */
703 src = bcs->tx_skb->data; /* source pointer */
716 bcs->tx_cnt -= bcs->tx_skb->len;
717 if (test_bit(FLG_LLI_L1WAKEUP,&bcs->st->lli.flag) &&
718 (PACKET_NOACK != bcs->tx_skb->pkt_type)) {
720 spin_lock_irqsave(&bcs->aclock, flags);
721 bcs->ackcnt += bcs->tx_skb->len;
722 spin_unlock_irqrestore(&bcs->aclock, flags);
723 schedule_event(bcs, B_ACKPENDING);
729 dev_kfree_skb_any(bcs->tx_skb);
730 bcs->tx_skb = NULL;
731 test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
939 struct BCState *bcs;
990 if (!(bcs = Sel_BCS(cs, cs->hw.hfcpci.bswapped ? 1 : 0))) {
994 main_rec_hfcpci(bcs);
999 else if (!(bcs = Sel_BCS(cs, 1))) {
1003 main_rec_hfcpci(bcs);
1006 if (!(bcs = Sel_BCS(cs, cs->hw.hfcpci.bswapped ? 1 : 0))) {
1010 if (bcs->tx_skb) {
1012 hfcpci_fill_fifo(bcs);
1015 debugl1(cs, "fill_data %d blocked", bcs->channel);
1017 if ((bcs->tx_skb = skb_dequeue(&bcs->squeue))) {
1019 hfcpci_fill_fifo(bcs);
1022 debugl1(cs, "fill_data %d blocked", bcs->channel);
1024 hfcpci_sched_event(bcs, B_XMTBUFREADY);
1030 if (!(bcs = Sel_BCS(cs, 1))) {
1034 if (bcs->tx_skb) {
1036 hfcpci_fill_fifo(bcs);
1039 debugl1(cs, "fill_data %d blocked", bcs->channel);
1041 if ((bcs->tx_skb = skb_dequeue(&bcs->squeue))) {
1043 hfcpci_fill_fifo(bcs);
1046 debugl1(cs, "fill_data %d blocked", bcs->channel);
1048 hfcpci_sched_event(bcs, B_XMTBUFREADY);
1259 hfcpci_send_data(struct BCState *bcs)
1261 struct IsdnCardState *cs = bcs->cs;
1264 hfcpci_fill_fifo(bcs);
1267 debugl1(cs, "send_data %d blocked", bcs->channel);
1274 mode_hfcpci(struct BCState *bcs, int mode, int bc)
1276 struct IsdnCardState *cs = bcs->cs;
1281 mode, bc, bcs->channel);
1282 bcs->mode = mode;
1283 bcs->channel = bc;
1397 struct BCState *bcs = st->l1.bcs;
1403 spin_lock_irqsave(&bcs->cs->lock, flags);
1404 if (bcs->tx_skb) {
1405 skb_queue_tail(&bcs->squeue, skb);
1407 bcs->tx_skb = skb;
1408 // test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
1409 bcs->cs->BC_Send_Data(bcs);
1411 spin_unlock_irqrestore(&bcs->cs->lock, flags);
1414 spin_lock_irqsave(&bcs->cs->lock, flags);
1415 if (bcs->tx_skb) {
1416 spin_unlock_irqrestore(&bcs->cs->lock, flags);
1420 // test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
1421 bcs->tx_skb = skb;
1422 bcs->cs->BC_Send_Data(bcs);
1423 spin_unlock_irqrestore(&bcs->cs->lock, flags);
1426 if (!bcs->tx_skb) {
1433 spin_lock_irqsave(&bcs->cs->lock, flags);
1434 test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag);
1435 mode_hfcpci(bcs, st->l1.mode, st->l1.bc);
1436 spin_unlock_irqrestore(&bcs->cs->lock, flags);
1443 spin_lock_irqsave(&bcs->cs->lock, flags);
1444 test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag);
1445 test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
1446 mode_hfcpci(bcs, 0, st->l1.bc);
1447 spin_unlock_irqrestore(&bcs->cs->lock, flags);
1457 close_hfcpci(struct BCState *bcs)
1459 mode_hfcpci(bcs, 0, bcs->channel);
1460 if (test_and_clear_bit(BC_FLG_INIT, &bcs->Flag)) {
1461 skb_queue_purge(&bcs->rqueue);
1462 skb_queue_purge(&bcs->squeue);
1463 if (bcs->tx_skb) {
1464 dev_kfree_skb_any(bcs->tx_skb);
1465 bcs->tx_skb = NULL;
1466 test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
1475 open_hfcpcistate(struct IsdnCardState *cs, struct BCState *bcs)
1477 if (!test_and_set_bit(BC_FLG_INIT, &bcs->Flag)) {
1478 skb_queue_head_init(&bcs->rqueue);
1479 skb_queue_head_init(&bcs->squeue);
1481 bcs->tx_skb = NULL;
1482 test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
1483 bcs->event = 0;
1484 bcs->tx_cnt = 0;
1492 setstack_2b(struct PStack *st, struct BCState *bcs)
1494 bcs->channel = st->l1.bc;
1495 if (open_hfcpcistate(st->l1.hardware, bcs))
1497 st->l1.bcs = bcs;
1500 bcs->st = st;
1589 cs->bcs[0].BC_SetStack = setstack_2b;
1590 cs->bcs[1].BC_SetStack = setstack_2b;
1591 cs->bcs[0].BC_Close = close_hfcpci;
1592 cs->bcs[1].BC_Close = close_hfcpci;
1596 mode_hfcpci(cs->bcs, 0, 0);
1597 mode_hfcpci(cs->bcs + 1, 0, 1);