Lines Matching refs:ei_local
98 #define ei_reset_8390 (ei_local->reset_8390)
99 #define ei_block_output (ei_local->block_output)
100 #define ei_block_input (ei_local->block_input)
101 #define ei_get_8390_hdr (ei_local->get_8390_hdr)
207 struct ei_device *ei_local = netdev_priv(dev); in __ei_open() local
217 spin_lock_irqsave(&ei_local->page_lock, flags); in __ei_open()
222 spin_unlock_irqrestore(&ei_local->page_lock, flags); in __ei_open()
223 ei_local->irqlock = 0; in __ei_open()
235 struct ei_device *ei_local = netdev_priv(dev); in __ei_close() local
242 spin_lock_irqsave(&ei_local->page_lock, flags); in __ei_close()
244 spin_unlock_irqrestore(&ei_local->page_lock, flags); in __ei_close()
260 struct ei_device *ei_local = netdev_priv(dev); in __ei_tx_timeout() local
266 spin_lock_irqsave(&ei_local->page_lock, flags); in __ei_tx_timeout()
269 spin_unlock_irqrestore(&ei_local->page_lock, flags); in __ei_tx_timeout()
278 ei_local->interface_num ^= 1; /* Try a different xcvr. */ in __ei_tx_timeout()
284 spin_lock(&ei_local->page_lock); in __ei_tx_timeout()
290 spin_unlock(&ei_local->page_lock); in __ei_tx_timeout()
307 struct ei_device *ei_local = netdev_priv(dev); in __ei_start_xmit() local
325 spin_lock_irqsave(&ei_local->page_lock, flags); in __ei_start_xmit()
327 spin_unlock_irqrestore(&ei_local->page_lock, flags); in __ei_start_xmit()
336 spin_lock(&ei_local->page_lock); in __ei_start_xmit()
338 ei_local->irqlock = 1; in __ei_start_xmit()
348 if (ei_local->tx1 == 0) { in __ei_start_xmit()
349 output_page = ei_local->tx_start_page; in __ei_start_xmit()
350 ei_local->tx1 = send_length; in __ei_start_xmit()
351 if ((netif_msg_tx_queued(ei_local)) && in __ei_start_xmit()
352 ei_local->tx2 > 0) in __ei_start_xmit()
355 ei_local->tx2, ei_local->lasttx, ei_local->txing); in __ei_start_xmit()
356 } else if (ei_local->tx2 == 0) { in __ei_start_xmit()
357 output_page = ei_local->tx_start_page + TX_PAGES/2; in __ei_start_xmit()
358 ei_local->tx2 = send_length; in __ei_start_xmit()
359 if ((netif_msg_tx_queued(ei_local)) && in __ei_start_xmit()
360 ei_local->tx1 > 0) in __ei_start_xmit()
363 ei_local->tx1, ei_local->lasttx, ei_local->txing); in __ei_start_xmit()
365 netif_dbg(ei_local, tx_err, dev, in __ei_start_xmit()
367 ei_local->tx1, ei_local->tx2, ei_local->lasttx); in __ei_start_xmit()
368 ei_local->irqlock = 0; in __ei_start_xmit()
371 spin_unlock(&ei_local->page_lock); in __ei_start_xmit()
385 if (!ei_local->txing) { in __ei_start_xmit()
386 ei_local->txing = 1; in __ei_start_xmit()
388 if (output_page == ei_local->tx_start_page) { in __ei_start_xmit()
389 ei_local->tx1 = -1; in __ei_start_xmit()
390 ei_local->lasttx = -1; in __ei_start_xmit()
392 ei_local->tx2 = -1; in __ei_start_xmit()
393 ei_local->lasttx = -2; in __ei_start_xmit()
396 ei_local->txqueue++; in __ei_start_xmit()
398 if (ei_local->tx1 && ei_local->tx2) in __ei_start_xmit()
404 ei_local->irqlock = 0; in __ei_start_xmit()
407 spin_unlock(&ei_local->page_lock); in __ei_start_xmit()
433 struct ei_device *ei_local = netdev_priv(dev); in __ei_interrupt() local
439 spin_lock(&ei_local->page_lock); in __ei_interrupt()
441 if (ei_local->irqlock) { in __ei_interrupt()
449 spin_unlock(&ei_local->page_lock); in __ei_interrupt()
455 netif_dbg(ei_local, intr, dev, "interrupt(isr=%#2.2x)\n", in __ei_interrupt()
494 if (interrupts && (netif_msg_intr(ei_local))) { in __ei_interrupt()
507 spin_unlock(&ei_local->page_lock); in __ei_interrupt()
538 struct ei_device *ei_local __maybe_unused = netdev_priv(dev); in ei_tx_err()
583 struct ei_device *ei_local = netdev_priv(dev); in ei_tx_intr() local
592 ei_local->txqueue--; in ei_tx_intr()
594 if (ei_local->tx1 < 0) { in ei_tx_intr()
595 if (ei_local->lasttx != 1 && ei_local->lasttx != -1) in ei_tx_intr()
597 ei_local->name, ei_local->lasttx, ei_local->tx1); in ei_tx_intr()
598 ei_local->tx1 = 0; in ei_tx_intr()
599 if (ei_local->tx2 > 0) { in ei_tx_intr()
600 ei_local->txing = 1; in ei_tx_intr()
601 NS8390_trigger_send(dev, ei_local->tx2, ei_local->tx_start_page + 6); in ei_tx_intr()
603 ei_local->tx2 = -1; in ei_tx_intr()
604 ei_local->lasttx = 2; in ei_tx_intr()
606 ei_local->lasttx = 20; in ei_tx_intr()
607 ei_local->txing = 0; in ei_tx_intr()
609 } else if (ei_local->tx2 < 0) { in ei_tx_intr()
610 if (ei_local->lasttx != 2 && ei_local->lasttx != -2) in ei_tx_intr()
612 ei_local->name, ei_local->lasttx, ei_local->tx2); in ei_tx_intr()
613 ei_local->tx2 = 0; in ei_tx_intr()
614 if (ei_local->tx1 > 0) { in ei_tx_intr()
615 ei_local->txing = 1; in ei_tx_intr()
616 NS8390_trigger_send(dev, ei_local->tx1, ei_local->tx_start_page); in ei_tx_intr()
618 ei_local->tx1 = -1; in ei_tx_intr()
619 ei_local->lasttx = 1; in ei_tx_intr()
621 ei_local->lasttx = 10; in ei_tx_intr()
622 ei_local->txing = 0; in ei_tx_intr()
663 struct ei_device *ei_local = netdev_priv(dev); in ei_receive() local
668 int num_rx_pages = ei_local->stop_page-ei_local->rx_start_page; in ei_receive()
680 if (this_frame >= ei_local->stop_page) in ei_receive()
681 this_frame = ei_local->rx_start_page; in ei_receive()
689 if ((netif_msg_rx_status(ei_local)) && in ei_receive()
690 this_frame != ei_local->current_page && in ei_receive()
694 this_frame, ei_local->current_page); in ei_receive()
714 ei_local->current_page = rxing_page; in ei_receive()
715 ei_outb(ei_local->current_page-1, e8390_base+EN0_BOUNDARY); in ei_receive()
721 netif_dbg(ei_local, rx_status, dev, in ei_receive()
732 netif_err(ei_local, rx_err, dev, in ei_receive()
750 netif_err(ei_local, rx_err, dev, in ei_receive()
762 if (next_frame >= ei_local->stop_page) { in ei_receive()
765 next_frame = ei_local->rx_start_page; in ei_receive()
767 ei_local->current_page = next_frame; in ei_receive()
794 struct ei_device *ei_local __maybe_unused = netdev_priv(dev); in ei_rx_overrun()
803 netif_dbg(ei_local, rx_err, dev, "Receiver overrun\n"); in ei_rx_overrun()
860 struct ei_device *ei_local = netdev_priv(dev); in __ei_get_stats() local
867 spin_lock_irqsave(&ei_local->page_lock, flags); in __ei_get_stats()
872 spin_unlock_irqrestore(&ei_local->page_lock, flags); in __ei_get_stats()
908 struct ei_device *ei_local = netdev_priv(dev); in do_set_multicast_list() local
911 memset(ei_local->mcfilter, 0, 8); in do_set_multicast_list()
913 make_mc_bits(ei_local->mcfilter, dev); in do_set_multicast_list()
915 memset(ei_local->mcfilter, 0xFF, 8); /* mcast set to accept-all */ in do_set_multicast_list()
934 ei_outb_p(ei_local->mcfilter[i], e8390_base + EN1_MULT_SHIFT(i)); in do_set_multicast_list()
936 if (ei_inb_p(e8390_base + EN1_MULT_SHIFT(i)) != ei_local->mcfilter[i]) in do_set_multicast_list()
960 struct ei_device *ei_local = netdev_priv(dev); in __ei_set_multicast_list() local
962 spin_lock_irqsave(&ei_local->page_lock, flags); in __ei_set_multicast_list()
964 spin_unlock_irqrestore(&ei_local->page_lock, flags); in __ei_set_multicast_list()
977 struct ei_device *ei_local = netdev_priv(dev); in ethdev_setup() local
981 spin_lock_init(&ei_local->page_lock); in ethdev_setup()
983 ei_local->msg_enable = netif_msg_init(msg_enable, default_msg_level); in ethdev_setup()
985 if (netif_msg_drv(ei_local) && (version_printed++ == 0)) in ethdev_setup()
1018 struct ei_device *ei_local = netdev_priv(dev); in __NS8390_init() local
1020 int endcfg = ei_local->word16 in __NS8390_init()
1021 ? (0x48 | ENDCFG_WTS | (ei_local->bigendian ? ENDCFG_BOS : 0)) in __NS8390_init()
1035 ei_outb_p(ei_local->tx_start_page, e8390_base + EN0_TPSR); in __NS8390_init()
1036 ei_local->tx1 = ei_local->tx2 = 0; in __NS8390_init()
1037 ei_outb_p(ei_local->rx_start_page, e8390_base + EN0_STARTPG); in __NS8390_init()
1038 ei_outb_p(ei_local->stop_page-1, e8390_base + EN0_BOUNDARY); /* 3c503 says 0x3f,NS0x26*/ in __NS8390_init()
1039 ei_local->current_page = ei_local->rx_start_page; /* assert boundary+1 */ in __NS8390_init()
1040 ei_outb_p(ei_local->stop_page, e8390_base + EN0_STOPPG); in __NS8390_init()
1050 if ((netif_msg_probe(ei_local)) && in __NS8390_init()
1056 ei_outb_p(ei_local->rx_start_page, e8390_base + EN1_CURPAG); in __NS8390_init()
1059 ei_local->tx1 = ei_local->tx2 = 0; in __NS8390_init()
1060 ei_local->txing = 0; in __NS8390_init()
1080 struct ei_device *ei_local __attribute((unused)) = netdev_priv(dev); in NS8390_trigger_send()