Lines Matching defs:lp

166 	struct arcnet_local *lp = netdev_priv(dev);
176 spin_lock_irqsave(&lp->lock, flags);
178 lp->hw.copy_from_card(dev, bufnum, 0, buf, 512);
180 spin_unlock_irqrestore(&lp->lock, flags);
200 struct arcnet_local *lp = netdev_priv(dev);
204 led_trigger_blink_oneshot(lp->recon_led_trig, 350, 350, 0);
207 led_trigger_event(lp->tx_led_trig, LED_OFF);
208 led_trigger_event(lp->recon_led_trig, LED_OFF);
211 led_trigger_event(lp->tx_led_trig, LED_OFF);
212 led_trigger_event(lp->recon_led_trig, LED_OFF);
215 led_trigger_blink_oneshot(lp->tx_led_trig, 50, 50, 0);
223 struct arcnet_local *lp = netdev_priv(to_net_dev(gendev));
225 led_trigger_unregister_simple(lp->tx_led_trig);
226 led_trigger_unregister_simple(lp->recon_led_trig);
235 struct arcnet_local *lp = netdev_priv(netdev);
244 snprintf(lp->tx_led_trig_name, sizeof(lp->tx_led_trig_name),
246 snprintf(lp->recon_led_trig_name, sizeof(lp->recon_led_trig_name),
249 led_trigger_register_simple(lp->tx_led_trig_name,
250 &lp->tx_led_trig);
251 led_trigger_register_simple(lp->recon_led_trig_name,
252 &lp->recon_led_trig);
288 struct arcnet_local *lp = netdev_priv(dev);
291 lp->buf_queue[lp->first_free_buf++] = bufnum;
292 lp->first_free_buf %= 5;
297 for (i = lp->next_buf; i != lp->first_free_buf; i = (i + 1) % 5)
298 arc_cont(D_DURING, "#%d ", lp->buf_queue[i]);
308 struct arcnet_local *lp = netdev_priv(dev);
311 if (!atomic_dec_and_test(&lp->buf_lock)) {
314 lp->buf_lock.counter);
316 if (lp->next_buf >= 5)
317 lp->next_buf -= 5;
319 if (lp->next_buf == lp->first_free_buf) {
322 buf = lp->buf_queue[lp->next_buf++];
323 lp->next_buf %= 5;
330 for (i = lp->next_buf; i != lp->first_free_buf; i = (i + 1) % 5)
331 arc_cont(D_DURING, "#%d ", lp->buf_queue[i]);
335 atomic_inc(&lp->buf_lock);
385 struct arcnet_local *lp = timer_container_of(lp, t, timer);
386 struct net_device *dev = lp->dev;
388 spin_lock_irq(&lp->lock);
390 if (!lp->reset_in_progress && !netif_carrier_ok(dev)) {
395 spin_unlock_irq(&lp->lock);
400 struct arcnet_local *lp;
403 lp = container_of(work, struct arcnet_local, reset_work);
404 dev = lp->dev;
409 if (!netif_running(dev) || !lp->reset_in_progress)
418 if (!netif_running(dev) || !lp->reset_in_progress)
430 struct arcnet_local *lp = from_work(lp, t, reply_work);
438 skb = lp->outgoing.skb;
459 serr->ee.ee_info = lp->reply_status;
462 dev_kfree_skb(lp->outgoing.skb);
463 lp->outgoing.skb = NULL;
465 ackskb->dev = lp->dev;
482 struct arcnet_local *lp = netdev_priv(dev);
484 lp->dev = dev;
485 spin_lock_init(&lp->lock);
486 timer_setup(&lp->timer, arcnet_timer, 0);
487 INIT_WORK(&lp->reset_work, reset_device_work);
496 struct arcnet_local *lp = netdev_priv(dev);
501 cancel_work_sync(&lp->reset_work);
515 struct arcnet_local *lp = netdev_priv(dev);
520 if (!try_module_get(lp->hw.owner))
531 INIT_WORK(&lp->reply_work, arcnet_reply_work);
539 if (lp->hw.reset(dev, 0) && lp->hw.reset(dev, 1))
549 memset(lp->default_proto, 0, sizeof(lp->default_proto));
554 lp->default_proto[0] = count;
560 atomic_set(&lp->buf_lock, 1);
562 lp->next_buf = lp->first_free_buf = 0;
567 lp->cur_tx = lp->next_tx = -1;
568 lp->cur_rx = -1;
570 lp->rfc1201.sequence = 1;
573 if (lp->hw.open)
574 lp->hw.open(dev);
582 if (lp->hw.status(dev) & RESETflag) {
585 lp->hw.command(dev, CFLAGScmd | RESETclear);
590 lp->hw.intmask(dev, 0);
596 lp->intmask = NORXflag | RECONflag;
597 lp->hw.intmask(dev, lp->intmask);
602 mod_timer(&lp->timer, jiffies + msecs_to_jiffies(1000));
608 module_put(lp->hw.owner);
616 struct arcnet_local *lp = netdev_priv(dev);
619 timer_delete_sync(&lp->timer);
624 cancel_work_sync(&lp->reply_work);
627 lp->hw.intmask(dev, 0);
628 lp->hw.command(dev, NOTXcmd); /* stop transmit */
629 lp->hw.command(dev, NORXcmd); /* disable receive */
633 lp->hw.close(dev);
636 lp->reset_in_progress = 0;
638 module_put(lp->hw.owner);
647 const struct arcnet_local *lp = netdev_priv(dev);
682 proto_num = lp->default_proto[_daddr];
699 struct arcnet_local *lp = netdev_priv(dev);
709 lp->hw.status(dev), lp->cur_tx, lp->next_tx, skb->len, skb->protocol);
730 spin_lock_irqsave(&lp->lock, flags);
731 lp->hw.intmask(dev, 0);
732 if (lp->next_tx == -1)
738 lp->outgoing.skb = skb;
747 lp->outgoing.proto = proto;
748 lp->outgoing.skb = skb;
749 lp->outgoing.pkt = pkt;
759 lp->next_tx = txbuf;
765 __FILE__, __LINE__, __func__, lp->hw.status(dev));
767 lp->hw.intmask(dev, 0);
770 lp->intmask |= TXFREEflag | EXCNAKflag;
771 lp->hw.intmask(dev, lp->intmask);
773 __FILE__, __LINE__, __func__, lp->hw.status(dev));
777 spin_unlock_irqrestore(&lp->lock, flags);
787 struct arcnet_local *lp = netdev_priv(dev);
790 lp->hw.status(dev), lp->intmask, lp->next_tx, lp->cur_tx);
792 if (lp->cur_tx != -1 || lp->next_tx == -1)
796 arcnet_dump_packet(dev, lp->next_tx, "go_tx", 0);
798 lp->cur_tx = lp->next_tx;
799 lp->next_tx = -1;
802 lp->hw.command(dev, TXcmd | (lp->cur_tx << 3));
805 lp->lasttrans_dest = lp->lastload_dest;
806 lp->lastload_dest = 0;
807 lp->excnak_pending = 0;
808 lp->intmask |= TXFREEflag | EXCNAKflag;
817 struct arcnet_local *lp = netdev_priv(dev);
818 int status = lp->hw.status(dev);
821 spin_lock_irqsave(&lp->lock, flags);
827 lp->timed_out = 1;
828 lp->hw.command(dev, NOTXcmd | (lp->cur_tx << 3));
833 lp->hw.intmask(dev, 0);
834 lp->intmask |= TXFREEflag | EXCNAKflag;
835 lp->hw.intmask(dev, lp->intmask);
837 spin_unlock_irqrestore(&lp->lock, flags);
839 if (time_after(jiffies, lp->last_timeout + 10 * HZ)) {
841 msg, status, lp->intmask, lp->lasttrans_dest);
842 lp->last_timeout = jiffies;
845 if (lp->cur_tx == -1)
857 struct arcnet_local *lp;
866 lp = netdev_priv(dev);
867 BUG_ON(!lp);
869 spin_lock_irqsave(&lp->lock, flags);
871 if (lp->reset_in_progress)
878 if (lp->hw.status(dev) & RESETflag)
879 lp->hw.command(dev, CFLAGScmd | RESETclear);
880 lp->hw.intmask(dev, 0);
881 spin_unlock_irqrestore(&lp->lock, flags);
886 lp->hw.status(dev), lp->intmask);
890 status = lp->hw.status(dev);
907 lp->reset_in_progress = 1;
910 schedule_work(&lp->reset_work);
924 if (status & lp->intmask & NORXflag) {
925 recbuf = lp->cur_rx;
929 lp->cur_rx = get_arcbuf(dev);
930 if (lp->cur_rx != -1) {
932 lp->cur_rx);
933 lp->hw.command(dev, RXcmd | (lp->cur_rx << 3) | RXbcasts);
942 lp->hw.command(dev, NOTXcmd); /* disable transmit */
943 lp->excnak_pending = 1;
945 lp->hw.command(dev, EXCNAKclear);
946 lp->intmask &= ~(EXCNAKflag);
951 if ((status & lp->intmask & TXFREEflag) || lp->timed_out) {
953 lp->intmask &= ~(TXFREEflag | EXCNAKflag);
957 else if (lp->excnak_pending)
965 if (lp->cur_tx != -1 && !lp->timed_out) {
967 if (lp->lasttrans_dest != 0) {
971 lp->lasttrans_dest);
978 lp->lasttrans_dest);
982 if (lp->outgoing.proto &&
983 lp->outgoing.proto->ack_tx) {
984 lp->outgoing.proto
987 lp->reply_status = ackstatus;
988 queue_work(system_bh_highpri_wq, &lp->reply_work);
990 if (lp->cur_tx != -1)
991 release_arcbuf(dev, lp->cur_tx);
993 lp->cur_tx = -1;
994 lp->timed_out = 0;
1001 if (lp->outgoing.proto &&
1002 lp->outgoing.proto->continue_tx) {
1006 if (lp->outgoing.proto->continue_tx(dev, txbuf)) {
1008 dev->stats.tx_bytes += lp->outgoing.skb->len;
1009 if (!lp->outgoing.proto->ack_tx) {
1010 dev_kfree_skb_irq(lp->outgoing.skb);
1011 lp->outgoing.proto = NULL;
1014 lp->next_tx = txbuf;
1018 if (lp->cur_tx == -1)
1031 if (status & lp->intmask & RECONflag) {
1032 lp->hw.command(dev, CFLAGScmd | CONFIGclear);
1041 mod_timer(&lp->timer, jiffies + msecs_to_jiffies(1000));
1049 if (!lp->first_recon || !lp->last_recon ||
1050 time_after(jiffies, lp->last_recon + HZ * 10)) {
1051 if (lp->network_down)
1053 lp->first_recon = lp->last_recon = jiffies;
1054 lp->num_recons = lp->network_down = 0;
1058 lp->last_recon = jiffies;
1059 lp->num_recons++;
1062 lp->num_recons,
1063 (lp->last_recon - lp->first_recon) / HZ,
1064 lp->network_down);
1072 if (!lp->network_down &&
1073 (lp->last_recon - lp->first_recon) <= HZ * 60 &&
1074 lp->num_recons >= RECON_THRESHOLD) {
1075 lp->network_down = 1;
1077 } else if (!lp->network_down &&
1078 lp->last_recon - lp->first_recon > HZ * 60) {
1082 lp->first_recon = lp->last_recon;
1083 lp->num_recons = 1;
1086 } else if (lp->network_down &&
1087 time_after(jiffies, lp->last_recon + HZ * 10)) {
1088 if (lp->network_down)
1090 lp->first_recon = lp->last_recon = 0;
1091 lp->num_recons = lp->network_down = 0;
1102 lp->hw.status(dev), boguscount);
1105 lp->hw.intmask(dev, 0);
1107 lp->hw.intmask(dev, lp->intmask);
1110 spin_unlock_irqrestore(&lp->lock, flags);
1120 struct arcnet_local *lp = netdev_priv(dev);
1130 lp->hw.copy_from_card(dev, bufnum, 0, &rxdata.pkt, ARC_HDR_SIZE);
1141 lp->hw.copy_from_card(dev, bufnum, ofs, soft, sizeof(rxdata.pkt.soft));
1144 lp->hw.copy_from_card(dev, bufnum, ofs, soft, length);
1157 *oldp = arc_proto_map[lp->default_proto[rxdata.pkt.hard.source]],
1169 lp->default_proto[0] = soft->proto;
1172 lp->default_proto[rxdata.pkt.hard.source] = soft->proto;
1189 struct arcnet_local *lp = netdev_priv(dev);
1193 lp->default_proto[daddr]);
1203 struct arcnet_local *lp = netdev_priv(dev);
1214 lp->hw.copy_to_card(dev, bufnum, 0, &newpkt, ARC_HDR_SIZE);