• Home
  • Raw
  • Download

Lines Matching refs:bcs

67 static void fill_mem(struct BCState *bcs, u_int *pos, u_int cnt, int chan, u_char fill)  in fill_mem()  argument
81 if (p > bcs->hw.tiger.s_end) in fill_mem()
82 p = bcs->hw.tiger.send; in fill_mem()
87 mode_tiger(struct BCState *bcs, int mode, int bc) in mode_tiger() argument
89 struct IsdnCardState *cs = bcs->cs; in mode_tiger()
94 mode, bc, bcs->channel); in mode_tiger()
95 bcs->mode = mode; in mode_tiger()
96 bcs->channel = bc; in mode_tiger()
99 fill_mem(bcs, bcs->hw.tiger.send, in mode_tiger()
103 bcs->hw.tiger.r_tot, bcs->hw.tiger.r_err, in mode_tiger()
104 bcs->hw.tiger.s_tot); in mode_tiger()
105 if ((cs->bcs[0].mode == L1_MODE_NULL) && in mode_tiger()
106 (cs->bcs[1].mode == L1_MODE_NULL)) { in mode_tiger()
126 fill_mem(bcs, bcs->hw.tiger.send, in mode_tiger()
128 bcs->hw.tiger.r_state = HDLC_ZERO_SEARCH; in mode_tiger()
129 bcs->hw.tiger.r_tot = 0; in mode_tiger()
130 bcs->hw.tiger.r_bitcnt = 0; in mode_tiger()
131 bcs->hw.tiger.r_one = 0; in mode_tiger()
132 bcs->hw.tiger.r_err = 0; in mode_tiger()
133 bcs->hw.tiger.s_tot = 0; in mode_tiger()
135 fill_mem(bcs, bcs->hw.tiger.send, in mode_tiger()
143 bcs->hw.tiger.sendp = bcs->hw.tiger.send; in mode_tiger()
144 bcs->hw.tiger.free = NETJET_DMA_TXSIZE; in mode_tiger()
145 test_and_set_bit(BC_FLG_EMPTY, &bcs->Flag); in mode_tiger()
200 bcs->hw.tiger.sendbuf[s_cnt++] = s_val; \
210 bcs->hw.tiger.sendbuf[s_cnt++] = s_val; \
216 static int make_raw_data(struct BCState *bcs) { in make_raw_data() argument
226 if (!bcs->tx_skb) { in make_raw_data()
227 debugl1(bcs->cs, "tiger make_raw: NULL skb"); in make_raw_data()
230 bcs->hw.tiger.sendbuf[s_cnt++] = HDLC_FLAG_VALUE; in make_raw_data()
232 for (i = 0; i < bcs->tx_skb->len; i++) { in make_raw_data()
233 val = bcs->tx_skb->data[i]; in make_raw_data()
251 bcs->hw.tiger.sendbuf[s_cnt++] = s_val; in make_raw_data()
256 if (bcs->cs->debug & L1_DEB_HSCX) in make_raw_data()
257 debugl1(bcs->cs, "tiger make_raw: in %u out %d.%d", in make_raw_data()
258 bcs->tx_skb->len, s_cnt, bitcnt); in make_raw_data()
264 bcs->hw.tiger.sendbuf[s_cnt++] = s_val; in make_raw_data()
265 bcs->hw.tiger.sendbuf[s_cnt++] = 0xff; // NJ<->NJ thoughput bug fix in make_raw_data()
267 bcs->hw.tiger.sendcnt = s_cnt; in make_raw_data()
268 bcs->tx_cnt -= bcs->tx_skb->len; in make_raw_data()
269 bcs->hw.tiger.sp = bcs->hw.tiger.sendbuf; in make_raw_data()
288 bcs->hw.tiger.sendbuf[s_cnt++] = s_val; \
300 bcs->hw.tiger.sendbuf[s_cnt++] = s_val; \
306 static int make_raw_data_56k(struct BCState *bcs) { in make_raw_data_56k() argument
316 if (!bcs->tx_skb) { in make_raw_data_56k()
317 debugl1(bcs->cs, "tiger make_raw_56k: NULL skb"); in make_raw_data_56k()
331 bcs->hw.tiger.sendbuf[s_cnt++] = s_val; in make_raw_data_56k()
337 for (i = 0; i < bcs->tx_skb->len; i++) { in make_raw_data_56k()
338 val = bcs->tx_skb->data[i]; in make_raw_data_56k()
358 bcs->hw.tiger.sendbuf[s_cnt++] = s_val; in make_raw_data_56k()
363 if (bcs->cs->debug & L1_DEB_HSCX) in make_raw_data_56k()
364 debugl1(bcs->cs, "tiger make_raw_56k: in %u out %d.%d", in make_raw_data_56k()
365 bcs->tx_skb->len, s_cnt, bitcnt); in make_raw_data_56k()
371 bcs->hw.tiger.sendbuf[s_cnt++] = s_val; in make_raw_data_56k()
372 bcs->hw.tiger.sendbuf[s_cnt++] = 0xff; // NJ<->NJ thoughput bug fix in make_raw_data_56k()
374 bcs->hw.tiger.sendcnt = s_cnt; in make_raw_data_56k()
375 bcs->tx_cnt -= bcs->tx_skb->len; in make_raw_data_56k()
376 bcs->hw.tiger.sp = bcs->hw.tiger.sendbuf; in make_raw_data_56k()
380 static void got_frame(struct BCState *bcs, int count) { in got_frame() argument
386 skb_put_data(skb, bcs->hw.tiger.rcvbuf, count); in got_frame()
387 skb_queue_tail(&bcs->rqueue, skb); in got_frame()
389 test_and_set_bit(B_RCVBUFREADY, &bcs->event); in got_frame()
390 schedule_work(&bcs->tqueue); in got_frame()
392 if (bcs->cs->debug & L1_DEB_RECEIVE_FRAME) in got_frame()
393 printframe(bcs->cs, bcs->hw.tiger.rcvbuf, count, "rec"); in got_frame()
398 static void read_raw(struct BCState *bcs, u_int *buf, int cnt) { in read_raw() argument
402 u_int *pend = bcs->hw.tiger.rec + NETJET_DMA_RXSIZE - 1; in read_raw()
403 register u_char state = bcs->hw.tiger.r_state; in read_raw()
404 register u_char r_one = bcs->hw.tiger.r_one; in read_raw()
405 register u_char r_val = bcs->hw.tiger.r_val; in read_raw()
406 register u_int bitcnt = bcs->hw.tiger.r_bitcnt; in read_raw()
411 if (bcs->mode == L1_MODE_HDLC) { // it's 64k in read_raw()
420 val = bcs->channel ? ((*p >> 8) & 0xff) : (*p & 0xff); in read_raw()
423 p = bcs->hw.tiger.rec; in read_raw()
426 bcs->hw.tiger.r_tot++; in read_raw()
438 if (bcs->cs->debug & L1_DEB_HSCX) in read_raw()
439 debugl1(bcs->cs, "tiger read_raw: zBit(%d,%d,%d) %x", in read_raw()
440 bcs->hw.tiger.r_tot, i, j, val); in read_raw()
453 if (bcs->cs->debug & L1_DEB_HSCX) in read_raw()
454 debugl1(bcs->cs, "tiger read_raw: flag(%d,%d,%d) %x", in read_raw()
455 bcs->hw.tiger.r_tot, i, j, val); in read_raw()
486 bcs->hw.tiger.r_fcs = PPP_INITFCS; in read_raw()
487 bcs->hw.tiger.rcvbuf[0] = r_val; in read_raw()
488 bcs->hw.tiger.r_fcs = PPP_FCS(bcs->hw.tiger.r_fcs, r_val); in read_raw()
489 if (bcs->cs->debug & L1_DEB_HSCX) in read_raw()
490 debugl1(bcs->cs, "tiger read_raw: byte1(%d,%d,%d) rval %x val %x i %x", in read_raw()
491 bcs->hw.tiger.r_tot, i, j, r_val, val, in read_raw()
492 bcs->cs->hw.njet.irqstat0); in read_raw()
511 debugl1(bcs->cs, "tiger: frame not byte aligned"); in read_raw()
513 bcs->hw.tiger.r_err++; in read_raw()
515 bcs->err_inv++; in read_raw()
518 if (bcs->cs->debug & L1_DEB_HSCX) in read_raw()
519 debugl1(bcs->cs, "tiger frame end(%d,%d): fcs(%x) i %x", in read_raw()
520 i, j, bcs->hw.tiger.r_fcs, bcs->cs->hw.njet.irqstat0); in read_raw()
521 if (bcs->hw.tiger.r_fcs == PPP_GOODFCS) { in read_raw()
522 got_frame(bcs, (bitcnt >> 3) - 3); in read_raw()
524 if (bcs->cs->debug) { in read_raw()
525 debugl1(bcs->cs, "tiger FCS error"); in read_raw()
526 printframe(bcs->cs, bcs->hw.tiger.rcvbuf, in read_raw()
528 bcs->hw.tiger.r_err++; in read_raw()
531 bcs->err_crc++; in read_raw()
551 debugl1(bcs->cs, "tiger: frame too big"); in read_raw()
554 bcs->hw.tiger.r_err++; in read_raw()
556 bcs->err_inv++; in read_raw()
559 bcs->hw.tiger.rcvbuf[(bitcnt >> 3) - 1] = r_val; in read_raw()
560 bcs->hw.tiger.r_fcs = in read_raw()
561 PPP_FCS(bcs->hw.tiger.r_fcs, r_val); in read_raw()
567 bcs->hw.tiger.r_tot++; in read_raw()
569 bcs->hw.tiger.r_state = state; in read_raw()
570 bcs->hw.tiger.r_one = r_one; in read_raw()
571 bcs->hw.tiger.r_val = r_val; in read_raw()
572 bcs->hw.tiger.r_bitcnt = bitcnt; in read_raw()
583 if (cs->bcs[0].mode) in read_tiger()
584 cs->bcs[0].err_rdo++; in read_tiger()
585 if (cs->bcs[1].mode) in read_tiger()
586 cs->bcs[1].err_rdo++; in read_tiger()
594 p = cs->bcs[0].hw.tiger.rec + NETJET_DMA_RXSIZE - 1; in read_tiger()
596 p = cs->bcs[0].hw.tiger.rec + cnt - 1; in read_tiger()
597 if ((cs->bcs[0].mode == L1_MODE_HDLC) || (cs->bcs[0].mode == L1_MODE_HDLC_56K)) in read_tiger()
598 read_raw(cs->bcs, p, cnt); in read_tiger()
600 if ((cs->bcs[1].mode == L1_MODE_HDLC) || (cs->bcs[1].mode == L1_MODE_HDLC_56K)) in read_tiger()
601 read_raw(cs->bcs + 1, p, cnt); in read_tiger()
605 static void write_raw(struct BCState *bcs, u_int *buf, int cnt);
607 void netjet_fill_dma(struct BCState *bcs) in netjet_fill_dma() argument
612 if (!bcs->tx_skb) in netjet_fill_dma()
614 if (bcs->cs->debug & L1_DEB_HSCX) in netjet_fill_dma()
615 debugl1(bcs->cs, "tiger fill_dma1: c%d %4lx", bcs->channel, in netjet_fill_dma()
616 bcs->Flag); in netjet_fill_dma()
617 if (test_and_set_bit(BC_FLG_BUSY, &bcs->Flag)) in netjet_fill_dma()
619 if (bcs->mode == L1_MODE_HDLC) { // it's 64k in netjet_fill_dma()
620 if (make_raw_data(bcs)) in netjet_fill_dma()
624 if (make_raw_data_56k(bcs)) in netjet_fill_dma()
627 if (bcs->cs->debug & L1_DEB_HSCX) in netjet_fill_dma()
628 debugl1(bcs->cs, "tiger fill_dma2: c%d %4lx", bcs->channel, in netjet_fill_dma()
629 bcs->Flag); in netjet_fill_dma()
630 if (test_and_clear_bit(BC_FLG_NOFRAME, &bcs->Flag)) { in netjet_fill_dma()
631 write_raw(bcs, bcs->hw.tiger.sendp, bcs->hw.tiger.free); in netjet_fill_dma()
632 } else if (test_and_clear_bit(BC_FLG_HALF, &bcs->Flag)) { in netjet_fill_dma()
633 p = bus_to_virt(inl(bcs->cs->hw.njet.base + NETJET_DMA_READ_ADR)); in netjet_fill_dma()
634 sp = bcs->hw.tiger.sendp; in netjet_fill_dma()
635 if (p == bcs->hw.tiger.s_end) in netjet_fill_dma()
636 p = bcs->hw.tiger.send - 1; in netjet_fill_dma()
637 if (sp == bcs->hw.tiger.s_end) in netjet_fill_dma()
638 sp = bcs->hw.tiger.send - 1; in netjet_fill_dma()
641 write_raw(bcs, bcs->hw.tiger.sendp, bcs->hw.tiger.free); in netjet_fill_dma()
645 if (p > bcs->hw.tiger.s_end) in netjet_fill_dma()
646 p = bcs->hw.tiger.send; in netjet_fill_dma()
649 if (p > bcs->hw.tiger.s_end) in netjet_fill_dma()
650 p = bcs->hw.tiger.send; in netjet_fill_dma()
651 write_raw(bcs, p, bcs->hw.tiger.free - cnt); in netjet_fill_dma()
653 } else if (test_and_clear_bit(BC_FLG_EMPTY, &bcs->Flag)) { in netjet_fill_dma()
654 p = bus_to_virt(inl(bcs->cs->hw.njet.base + NETJET_DMA_READ_ADR)); in netjet_fill_dma()
655 cnt = bcs->hw.tiger.s_end - p; in netjet_fill_dma()
657 p = bcs->hw.tiger.send + 1; in netjet_fill_dma()
667 write_raw(bcs, p, cnt); in netjet_fill_dma()
669 if (bcs->cs->debug & L1_DEB_HSCX) in netjet_fill_dma()
670 debugl1(bcs->cs, "tiger fill_dma3: c%d %4lx", bcs->channel, in netjet_fill_dma()
671 bcs->Flag); in netjet_fill_dma()
674 static void write_raw(struct BCState *bcs, u_int *buf, int cnt) { in write_raw() argument
680 if (test_bit(BC_FLG_BUSY, &bcs->Flag)) { in write_raw()
681 if (bcs->hw.tiger.sendcnt > cnt) { in write_raw()
683 bcs->hw.tiger.sendcnt -= cnt; in write_raw()
685 s_cnt = bcs->hw.tiger.sendcnt; in write_raw()
686 bcs->hw.tiger.sendcnt = 0; in write_raw()
688 if (bcs->channel) in write_raw()
693 val = bcs->channel ? ((bcs->hw.tiger.sp[i] << 8) & 0xff00) : in write_raw()
694 (bcs->hw.tiger.sp[i]); in write_raw()
697 if (p > bcs->hw.tiger.s_end) in write_raw()
698 p = bcs->hw.tiger.send; in write_raw()
700 bcs->hw.tiger.s_tot += s_cnt; in write_raw()
701 if (bcs->cs->debug & L1_DEB_HSCX) in write_raw()
702 debugl1(bcs->cs, "tiger write_raw: c%d %p-%p %d/%d %d %x", bcs->channel, in write_raw()
704 bcs->hw.tiger.sendcnt, bcs->cs->hw.njet.irqstat0); in write_raw()
705 if (bcs->cs->debug & L1_DEB_HSCX_FIFO) in write_raw()
706 printframe(bcs->cs, bcs->hw.tiger.sp, s_cnt, "snd"); in write_raw()
707 bcs->hw.tiger.sp += s_cnt; in write_raw()
708 bcs->hw.tiger.sendp = p; in write_raw()
709 if (!bcs->hw.tiger.sendcnt) { in write_raw()
710 if (!bcs->tx_skb) { in write_raw()
711 debugl1(bcs->cs, "tiger write_raw: NULL skb s_cnt %d", s_cnt); in write_raw()
713 if (test_bit(FLG_LLI_L1WAKEUP, &bcs->st->lli.flag) && in write_raw()
714 (PACKET_NOACK != bcs->tx_skb->pkt_type)) { in write_raw()
716 spin_lock_irqsave(&bcs->aclock, flags); in write_raw()
717 bcs->ackcnt += bcs->tx_skb->len; in write_raw()
718 spin_unlock_irqrestore(&bcs->aclock, flags); in write_raw()
719 schedule_event(bcs, B_ACKPENDING); in write_raw()
721 dev_kfree_skb_any(bcs->tx_skb); in write_raw()
722 bcs->tx_skb = NULL; in write_raw()
724 test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag); in write_raw()
725 bcs->hw.tiger.free = cnt - s_cnt; in write_raw()
726 if (bcs->hw.tiger.free > (NETJET_DMA_TXSIZE / 2)) in write_raw()
727 test_and_set_bit(BC_FLG_HALF, &bcs->Flag); in write_raw()
729 test_and_clear_bit(BC_FLG_HALF, &bcs->Flag); in write_raw()
730 test_and_set_bit(BC_FLG_NOFRAME, &bcs->Flag); in write_raw()
732 if ((bcs->tx_skb = skb_dequeue(&bcs->squeue))) { in write_raw()
733 netjet_fill_dma(bcs); in write_raw()
739 if (p > bcs->hw.tiger.s_end) in write_raw()
740 p = bcs->hw.tiger.send; in write_raw()
742 if (bcs->cs->debug & L1_DEB_HSCX) in write_raw()
743 debugl1(bcs->cs, "tiger write_raw: fill rest %d", in write_raw()
746 test_and_set_bit(B_XMTBUFREADY, &bcs->event); in write_raw()
747 schedule_work(&bcs->tqueue); in write_raw()
750 } else if (test_and_clear_bit(BC_FLG_NOFRAME, &bcs->Flag)) { in write_raw()
751 test_and_set_bit(BC_FLG_HALF, &bcs->Flag); in write_raw()
752 fill_mem(bcs, buf, cnt, bcs->channel, 0xff); in write_raw()
753 bcs->hw.tiger.free += cnt; in write_raw()
754 if (bcs->cs->debug & L1_DEB_HSCX) in write_raw()
755 debugl1(bcs->cs, "tiger write_raw: fill half"); in write_raw()
756 } else if (test_and_clear_bit(BC_FLG_HALF, &bcs->Flag)) { in write_raw()
757 test_and_set_bit(BC_FLG_EMPTY, &bcs->Flag); in write_raw()
758 fill_mem(bcs, buf, cnt, bcs->channel, 0xff); in write_raw()
759 if (bcs->cs->debug & L1_DEB_HSCX) in write_raw()
760 debugl1(bcs->cs, "tiger write_raw: fill full"); in write_raw()
771 if (cs->bcs[0].mode) in write_tiger()
772 cs->bcs[0].err_tx++; in write_tiger()
773 if (cs->bcs[1].mode) in write_tiger()
774 cs->bcs[1].err_tx++; in write_tiger()
782 p = cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE - 1; in write_tiger()
784 p = cs->bcs[0].hw.tiger.send + cnt - 1; in write_tiger()
785 if ((cs->bcs[0].mode == L1_MODE_HDLC) || (cs->bcs[0].mode == L1_MODE_HDLC_56K)) in write_tiger()
786 write_raw(cs->bcs, p, cnt); in write_tiger()
787 if ((cs->bcs[1].mode == L1_MODE_HDLC) || (cs->bcs[1].mode == L1_MODE_HDLC_56K)) in write_tiger()
788 write_raw(cs->bcs + 1, p, cnt); in write_tiger()
795 struct BCState *bcs = st->l1.bcs; in tiger_l2l1() local
801 spin_lock_irqsave(&bcs->cs->lock, flags); in tiger_l2l1()
802 if (bcs->tx_skb) { in tiger_l2l1()
803 skb_queue_tail(&bcs->squeue, skb); in tiger_l2l1()
805 bcs->tx_skb = skb; in tiger_l2l1()
806 bcs->cs->BC_Send_Data(bcs); in tiger_l2l1()
808 spin_unlock_irqrestore(&bcs->cs->lock, flags); in tiger_l2l1()
811 spin_lock_irqsave(&bcs->cs->lock, flags); in tiger_l2l1()
812 if (bcs->tx_skb) { in tiger_l2l1()
815 bcs->tx_skb = skb; in tiger_l2l1()
816 bcs->cs->BC_Send_Data(bcs); in tiger_l2l1()
818 spin_unlock_irqrestore(&bcs->cs->lock, flags); in tiger_l2l1()
821 if (!bcs->tx_skb) { in tiger_l2l1()
828 spin_lock_irqsave(&bcs->cs->lock, flags); in tiger_l2l1()
829 test_and_set_bit(BC_FLG_ACTIV, &bcs->Flag); in tiger_l2l1()
830 mode_tiger(bcs, st->l1.mode, st->l1.bc); in tiger_l2l1()
832 spin_unlock_irqrestore(&bcs->cs->lock, flags); in tiger_l2l1()
833 bcs->cs->cardmsg(bcs->cs, MDL_BC_ASSIGN, (void *)(&st->l1.bc)); in tiger_l2l1()
838 bcs->cs->cardmsg(bcs->cs, MDL_BC_RELEASE, (void *)(&st->l1.bc)); in tiger_l2l1()
842 spin_lock_irqsave(&bcs->cs->lock, flags); in tiger_l2l1()
843 test_and_clear_bit(BC_FLG_ACTIV, &bcs->Flag); in tiger_l2l1()
844 test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag); in tiger_l2l1()
845 mode_tiger(bcs, 0, st->l1.bc); in tiger_l2l1()
846 spin_unlock_irqrestore(&bcs->cs->lock, flags); in tiger_l2l1()
854 close_tigerstate(struct BCState *bcs) in close_tigerstate() argument
856 mode_tiger(bcs, 0, bcs->channel); in close_tigerstate()
857 if (test_and_clear_bit(BC_FLG_INIT, &bcs->Flag)) { in close_tigerstate()
858 kfree(bcs->hw.tiger.rcvbuf); in close_tigerstate()
859 bcs->hw.tiger.rcvbuf = NULL; in close_tigerstate()
860 kfree(bcs->hw.tiger.sendbuf); in close_tigerstate()
861 bcs->hw.tiger.sendbuf = NULL; in close_tigerstate()
862 skb_queue_purge(&bcs->rqueue); in close_tigerstate()
863 skb_queue_purge(&bcs->squeue); in close_tigerstate()
864 if (bcs->tx_skb) { in close_tigerstate()
865 dev_kfree_skb_any(bcs->tx_skb); in close_tigerstate()
866 bcs->tx_skb = NULL; in close_tigerstate()
867 test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag); in close_tigerstate()
873 open_tigerstate(struct IsdnCardState *cs, struct BCState *bcs) in open_tigerstate() argument
875 if (!test_and_set_bit(BC_FLG_INIT, &bcs->Flag)) { in open_tigerstate()
876 if (!(bcs->hw.tiger.rcvbuf = kmalloc(HSCX_BUFMAX, GFP_ATOMIC))) { in open_tigerstate()
881 if (!(bcs->hw.tiger.sendbuf = kmalloc(RAW_BUFMAX, GFP_ATOMIC))) { in open_tigerstate()
886 skb_queue_head_init(&bcs->rqueue); in open_tigerstate()
887 skb_queue_head_init(&bcs->squeue); in open_tigerstate()
889 bcs->tx_skb = NULL; in open_tigerstate()
890 bcs->hw.tiger.sendcnt = 0; in open_tigerstate()
891 test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag); in open_tigerstate()
892 bcs->event = 0; in open_tigerstate()
893 bcs->tx_cnt = 0; in open_tigerstate()
898 setstack_tiger(struct PStack *st, struct BCState *bcs) in setstack_tiger() argument
900 bcs->channel = st->l1.bc; in setstack_tiger()
901 if (open_tigerstate(st->l1.hardware, bcs)) in setstack_tiger()
903 st->l1.bcs = bcs; in setstack_tiger()
906 bcs->st = st; in setstack_tiger()
915 if (!(cs->bcs[0].hw.tiger.send = kmalloc(NETJET_DMA_TXSIZE * sizeof(unsigned int), in inittiger()
921 cs->bcs[0].hw.tiger.s_irq = cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE / 2 - 1; in inittiger()
922 cs->bcs[0].hw.tiger.s_end = cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE - 1; in inittiger()
923 cs->bcs[1].hw.tiger.send = cs->bcs[0].hw.tiger.send; in inittiger()
924 cs->bcs[1].hw.tiger.s_irq = cs->bcs[0].hw.tiger.s_irq; in inittiger()
925 cs->bcs[1].hw.tiger.s_end = cs->bcs[0].hw.tiger.s_end; in inittiger()
927 memset(cs->bcs[0].hw.tiger.send, 0xff, NETJET_DMA_TXSIZE * sizeof(unsigned int)); in inittiger()
928 debugl1(cs, "tiger: send buf %p - %p", cs->bcs[0].hw.tiger.send, in inittiger()
929 cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE - 1); in inittiger()
930 outl(virt_to_bus(cs->bcs[0].hw.tiger.send), in inittiger()
932 outl(virt_to_bus(cs->bcs[0].hw.tiger.s_irq), in inittiger()
934 outl(virt_to_bus(cs->bcs[0].hw.tiger.s_end), in inittiger()
936 if (!(cs->bcs[0].hw.tiger.rec = kmalloc(NETJET_DMA_RXSIZE * sizeof(unsigned int), in inittiger()
942 debugl1(cs, "tiger: rec buf %p - %p", cs->bcs[0].hw.tiger.rec, in inittiger()
943 cs->bcs[0].hw.tiger.rec + NETJET_DMA_RXSIZE - 1); in inittiger()
944 cs->bcs[1].hw.tiger.rec = cs->bcs[0].hw.tiger.rec; in inittiger()
945 memset(cs->bcs[0].hw.tiger.rec, 0xff, NETJET_DMA_RXSIZE * sizeof(unsigned int)); in inittiger()
946 outl(virt_to_bus(cs->bcs[0].hw.tiger.rec), in inittiger()
948 outl(virt_to_bus(cs->bcs[0].hw.tiger.rec + NETJET_DMA_RXSIZE / 2 - 1), in inittiger()
950 outl(virt_to_bus(cs->bcs[0].hw.tiger.rec + NETJET_DMA_RXSIZE - 1), in inittiger()
957 cs->bcs[0].BC_SetStack = setstack_tiger; in inittiger()
958 cs->bcs[1].BC_SetStack = setstack_tiger; in inittiger()
959 cs->bcs[0].BC_Close = close_tigerstate; in inittiger()
960 cs->bcs[1].BC_Close = close_tigerstate; in inittiger()
966 kfree(cs->bcs[0].hw.tiger.send); in releasetiger()
967 cs->bcs[0].hw.tiger.send = NULL; in releasetiger()
968 cs->bcs[1].hw.tiger.send = NULL; in releasetiger()
969 kfree(cs->bcs[0].hw.tiger.rec); in releasetiger()
970 cs->bcs[0].hw.tiger.rec = NULL; in releasetiger()
971 cs->bcs[1].hw.tiger.rec = NULL; in releasetiger()