Lines Matching refs:lp

179 	struct arcnet_local *lp = netdev_priv(dev);  in arcnet_dump_packet()  local
188 spin_lock_irqsave(&lp->lock, flags); in arcnet_dump_packet()
190 lp->hw.copy_from_card(dev, bufnum, 0, buf, 512); in arcnet_dump_packet()
192 spin_unlock_irqrestore(&lp->lock, flags); in arcnet_dump_packet()
242 struct arcnet_local *lp = netdev_priv(dev); in release_arcbuf() local
245 lp->buf_queue[lp->first_free_buf++] = bufnum; in release_arcbuf()
246 lp->first_free_buf %= 5; in release_arcbuf()
251 for (i = lp->next_buf; i != lp->first_free_buf; i = (i+1) % 5) in release_arcbuf()
252 BUGMSG2(D_DURING, "#%d ", lp->buf_queue[i]); in release_arcbuf()
264 struct arcnet_local *lp = netdev_priv(dev); in get_arcbuf() local
267 if (!atomic_dec_and_test(&lp->buf_lock)) { in get_arcbuf()
270 lp->buf_lock.counter); in get_arcbuf()
273 if (lp->next_buf >= 5) in get_arcbuf()
274 lp->next_buf -= 5; in get_arcbuf()
276 if (lp->next_buf == lp->first_free_buf) in get_arcbuf()
279 buf = lp->buf_queue[lp->next_buf++]; in get_arcbuf()
280 lp->next_buf %= 5; in get_arcbuf()
287 for (i = lp->next_buf; i != lp->first_free_buf; i = (i+1) % 5) in get_arcbuf()
288 BUGMSG2(D_DURING, "#%d ", lp->buf_queue[i]); in get_arcbuf()
292 atomic_inc(&lp->buf_lock); in get_arcbuf()
350 struct arcnet_local *lp = netdev_priv(dev); in alloc_arcdev() local
351 spin_lock_init(&lp->lock); in alloc_arcdev()
367 struct arcnet_local *lp = netdev_priv(dev); in arcnet_open() local
372 if (!try_module_get(lp->hw.owner)) in arcnet_open()
400 memset(lp->default_proto, 0, sizeof(lp->default_proto)); in arcnet_open()
405 lp->default_proto[0] = count; in arcnet_open()
411 atomic_set(&lp->buf_lock, 1); in arcnet_open()
413 lp->next_buf = lp->first_free_buf = 0; in arcnet_open()
418 lp->cur_tx = lp->next_tx = -1; in arcnet_open()
419 lp->cur_rx = -1; in arcnet_open()
421 lp->rfc1201.sequence = 1; in arcnet_open()
424 if (lp->hw.open) in arcnet_open()
425 lp->hw.open(dev); in arcnet_open()
449 lp->intmask = NORXflag | RECONflag; in arcnet_open()
450 AINTMASK(lp->intmask); in arcnet_open()
458 module_put(lp->hw.owner); in arcnet_open()
466 struct arcnet_local *lp = netdev_priv(dev); in arcnet_close() local
477 lp->hw.close(dev); in arcnet_close()
478 module_put(lp->hw.owner); in arcnet_close()
487 const struct arcnet_local *lp = netdev_priv(dev); in arcnet_header() local
526 proto_num = lp->default_proto[_daddr]; in arcnet_header()
543 struct arcnet_local *lp = netdev_priv(dev); in arcnet_send_packet() local
553 ASTATUS(), lp->cur_tx, lp->next_tx, skb->len,skb->protocol); in arcnet_send_packet()
573 spin_lock_irqsave(&lp->lock, flags); in arcnet_send_packet()
575 if(lp->next_tx == -1) in arcnet_send_packet()
589 lp->outgoing.proto = proto; in arcnet_send_packet()
590 lp->outgoing.skb = skb; in arcnet_send_packet()
591 lp->outgoing.pkt = pkt; in arcnet_send_packet()
603 lp->next_tx = txbuf; in arcnet_send_packet()
614 lp->intmask |= TXFREEflag|EXCNAKflag; in arcnet_send_packet()
615 AINTMASK(lp->intmask); in arcnet_send_packet()
618 spin_unlock_irqrestore(&lp->lock, flags); in arcnet_send_packet()
632 struct arcnet_local *lp = netdev_priv(dev); in go_tx() local
635 ASTATUS(), lp->intmask, lp->next_tx, lp->cur_tx); in go_tx()
637 if (lp->cur_tx != -1 || lp->next_tx == -1) in go_tx()
640 BUGLVL(D_TX) arcnet_dump_packet(dev, lp->next_tx, "go_tx", 0); in go_tx()
642 lp->cur_tx = lp->next_tx; in go_tx()
643 lp->next_tx = -1; in go_tx()
646 ACOMMAND(TXcmd | (lp->cur_tx << 3)); in go_tx()
649 lp->lasttrans_dest = lp->lastload_dest; in go_tx()
650 lp->lastload_dest = 0; in go_tx()
651 lp->excnak_pending = 0; in go_tx()
652 lp->intmask |= TXFREEflag|EXCNAKflag; in go_tx()
662 struct arcnet_local *lp = netdev_priv(dev); in arcnet_timeout() local
666 spin_lock_irqsave(&lp->lock, flags); in arcnet_timeout()
672 lp->timed_out = 1; in arcnet_timeout()
673 ACOMMAND(NOTXcmd | (lp->cur_tx << 3)); in arcnet_timeout()
679 lp->intmask |= TXFREEflag|EXCNAKflag; in arcnet_timeout()
680 AINTMASK(lp->intmask); in arcnet_timeout()
682 spin_unlock_irqrestore(&lp->lock, flags); in arcnet_timeout()
684 if (time_after(jiffies, lp->last_timeout + 10*HZ)) { in arcnet_timeout()
686 msg, status, lp->intmask, lp->lasttrans_dest); in arcnet_timeout()
687 lp->last_timeout = jiffies; in arcnet_timeout()
690 if (lp->cur_tx == -1) in arcnet_timeout()
703 struct arcnet_local *lp; in arcnet_interrupt() local
711 lp = netdev_priv(dev); in arcnet_interrupt()
712 BUG_ON(!lp); in arcnet_interrupt()
714 spin_lock(&lp->lock); in arcnet_interrupt()
724 spin_unlock(&lp->lock); in arcnet_interrupt()
729 ASTATUS(), lp->intmask); in arcnet_interrupt()
764 if (status & lp->intmask & NORXflag) { in arcnet_interrupt()
765 recbuf = lp->cur_rx; in arcnet_interrupt()
769 lp->cur_rx = get_arcbuf(dev); in arcnet_interrupt()
770 if (lp->cur_rx != -1) { in arcnet_interrupt()
772 lp->cur_rx); in arcnet_interrupt()
773 ACOMMAND(RXcmd | (lp->cur_rx << 3) | RXbcasts); in arcnet_interrupt()
783 lp->excnak_pending = 1; in arcnet_interrupt()
786 lp->intmask &= ~(EXCNAKflag); in arcnet_interrupt()
792 if ((status & lp->intmask & TXFREEflag) || lp->timed_out) { in arcnet_interrupt()
793 lp->intmask &= ~(TXFREEflag|EXCNAKflag); in arcnet_interrupt()
797 if (lp->cur_tx != -1 && !lp->timed_out) { in arcnet_interrupt()
799 if (lp->lasttrans_dest != 0) { in arcnet_interrupt()
803 status, lp->lasttrans_dest); in arcnet_interrupt()
810 status, lp->lasttrans_dest); in arcnet_interrupt()
814 if (lp->outgoing.proto && in arcnet_interrupt()
815 lp->outgoing.proto->ack_tx) { in arcnet_interrupt()
819 else if(lp->excnak_pending) in arcnet_interrupt()
824 lp->outgoing.proto in arcnet_interrupt()
828 if (lp->cur_tx != -1) in arcnet_interrupt()
829 release_arcbuf(dev, lp->cur_tx); in arcnet_interrupt()
831 lp->cur_tx = -1; in arcnet_interrupt()
832 lp->timed_out = 0; in arcnet_interrupt()
839 if (lp->outgoing.proto && lp->outgoing.proto->continue_tx) { in arcnet_interrupt()
842 if (lp->outgoing.proto->continue_tx(dev, txbuf)) { in arcnet_interrupt()
844 dev->stats.tx_bytes += lp->outgoing.skb->len; in arcnet_interrupt()
845 if(!lp->outgoing.proto->ack_tx) in arcnet_interrupt()
847 dev_kfree_skb_irq(lp->outgoing.skb); in arcnet_interrupt()
848 lp->outgoing.proto = NULL; in arcnet_interrupt()
851 lp->next_tx = txbuf; in arcnet_interrupt()
855 if (lp->cur_tx == -1) in arcnet_interrupt()
867 if (status & lp->intmask & RECONflag) { in arcnet_interrupt()
878 if (!lp->first_recon || !lp->last_recon || in arcnet_interrupt()
879 time_after(jiffies, lp->last_recon + HZ * 10)) { in arcnet_interrupt()
880 if (lp->network_down) in arcnet_interrupt()
882 lp->first_recon = lp->last_recon = jiffies; in arcnet_interrupt()
883 lp->num_recons = lp->network_down = 0; in arcnet_interrupt()
887 lp->last_recon = jiffies; in arcnet_interrupt()
888 lp->num_recons++; in arcnet_interrupt()
891 lp->num_recons, in arcnet_interrupt()
892 (lp->last_recon - lp->first_recon) / HZ, in arcnet_interrupt()
893 lp->network_down); in arcnet_interrupt()
901 if (!lp->network_down && in arcnet_interrupt()
902 (lp->last_recon - lp->first_recon) <= HZ * 60 && in arcnet_interrupt()
903 lp->num_recons >= RECON_THRESHOLD) { in arcnet_interrupt()
904 lp->network_down = 1; in arcnet_interrupt()
906 } else if (!lp->network_down && in arcnet_interrupt()
907 lp->last_recon - lp->first_recon > HZ * 60) { in arcnet_interrupt()
909 lp->first_recon = lp->last_recon; in arcnet_interrupt()
910 lp->num_recons = 1; in arcnet_interrupt()
913 } else if (lp->network_down && in arcnet_interrupt()
914 time_after(jiffies, lp->last_recon + HZ * 10)) { in arcnet_interrupt()
915 if (lp->network_down) in arcnet_interrupt()
917 lp->first_recon = lp->last_recon = 0; in arcnet_interrupt()
918 lp->num_recons = lp->network_down = 0; in arcnet_interrupt()
936 AINTMASK(lp->intmask); in arcnet_interrupt()
938 spin_unlock(&lp->lock); in arcnet_interrupt()
949 struct arcnet_local *lp = netdev_priv(dev); in arcnet_rx() local
956 lp->hw.copy_from_card(dev, bufnum, 0, &pkt, ARC_HDR_SIZE); in arcnet_rx()
967 lp->hw.copy_from_card(dev, bufnum, ofs, soft, sizeof(pkt.soft)); in arcnet_rx()
970 lp->hw.copy_from_card(dev, bufnum, ofs, soft, length); in arcnet_rx()
984 *oldp = arc_proto_map[lp->default_proto[pkt.hard.source]], in arcnet_rx()
996 lp->default_proto[0] = soft->proto; in arcnet_rx()
999 lp->default_proto[pkt.hard.source] = soft->proto; in arcnet_rx()
1018 struct arcnet_local *lp = netdev_priv(dev); in null_build_header() local
1022 lp->default_proto[daddr]); in null_build_header()
1033 struct arcnet_local *lp = netdev_priv(dev); in null_prepare_tx() local
1044 lp->hw.copy_to_card(dev, bufnum, 0, &newpkt, ARC_HDR_SIZE); in null_prepare_tx()