Lines Matching refs:tp
61 struct tulip_private *tp = netdev_priv(dev); in tulip_refill_rx() local
66 for (; tp->cur_rx - tp->dirty_rx > 0; tp->dirty_rx++) { in tulip_refill_rx()
67 entry = tp->dirty_rx % RX_RING_SIZE; in tulip_refill_rx()
68 if (tp->rx_buffers[entry].skb == NULL) { in tulip_refill_rx()
72 skb = tp->rx_buffers[entry].skb = in tulip_refill_rx()
77 mapping = pci_map_single(tp->pdev, skb->data, PKT_BUF_SZ, in tulip_refill_rx()
79 if (dma_mapping_error(&tp->pdev->dev, mapping)) { in tulip_refill_rx()
81 tp->rx_buffers[entry].skb = NULL; in tulip_refill_rx()
85 tp->rx_buffers[entry].mapping = mapping; in tulip_refill_rx()
87 tp->rx_ring[entry].buffer1 = cpu_to_le32(mapping); in tulip_refill_rx()
90 tp->rx_ring[entry].status = cpu_to_le32(DescOwned); in tulip_refill_rx()
92 if(tp->chip_id == LC82C168) { in tulip_refill_rx()
93 if(((ioread32(tp->base_addr + CSR5)>>17)&0x07) == 4) { in tulip_refill_rx()
97 iowrite32(0x01, tp->base_addr + CSR2); in tulip_refill_rx()
108 struct tulip_private *tp = netdev_priv(dev); in oom_timer() local
109 napi_schedule(&tp->napi); in oom_timer()
114 struct tulip_private *tp = container_of(napi, struct tulip_private, napi); in tulip_poll() local
115 struct net_device *dev = tp->dev; in tulip_poll()
116 int entry = tp->cur_rx % RX_RING_SIZE; in tulip_poll()
132 entry, tp->rx_ring[entry].status); in tulip_poll()
135 if (ioread32(tp->base_addr + CSR5) == 0xffffffff) { in tulip_poll()
140 iowrite32((RxIntr | RxNoBuf), tp->base_addr + CSR5); in tulip_poll()
144 while ( ! (tp->rx_ring[entry].status & cpu_to_le32(DescOwned))) { in tulip_poll()
145 s32 status = le32_to_cpu(tp->rx_ring[entry].status); in tulip_poll()
148 if (tp->dirty_rx + RX_RING_SIZE == tp->cur_rx) in tulip_poll()
213 pci_dma_sync_single_for_cpu(tp->pdev, in tulip_poll()
214 tp->rx_buffers[entry].mapping, in tulip_poll()
217 skb_copy_to_linear_data(skb, tp->rx_buffers[entry].skb->data, in tulip_poll()
222 tp->rx_buffers[entry].skb->data, in tulip_poll()
225 pci_dma_sync_single_for_device(tp->pdev, in tulip_poll()
226 tp->rx_buffers[entry].mapping, in tulip_poll()
229 char *temp = skb_put(skb = tp->rx_buffers[entry].skb, in tulip_poll()
233 if (tp->rx_buffers[entry].mapping != in tulip_poll()
234 le32_to_cpu(tp->rx_ring[entry].buffer1)) { in tulip_poll()
237 le32_to_cpu(tp->rx_ring[entry].buffer1), in tulip_poll()
238 (unsigned long long)tp->rx_buffers[entry].mapping, in tulip_poll()
243 pci_unmap_single(tp->pdev, tp->rx_buffers[entry].mapping, in tulip_poll()
246 tp->rx_buffers[entry].skb = NULL; in tulip_poll()
247 tp->rx_buffers[entry].mapping = 0; in tulip_poll()
260 entry = (++tp->cur_rx) % RX_RING_SIZE; in tulip_poll()
261 if (tp->cur_rx - tp->dirty_rx > RX_RING_SIZE/4) in tulip_poll()
276 } while ((ioread32(tp->base_addr + CSR5) & RxIntr)); in tulip_poll()
297 if( tp->flags & HAS_INTR_MITIGATION) { in tulip_poll()
299 if( ! tp->mit_on ) { in tulip_poll()
300 tp->mit_on = 1; in tulip_poll()
301 iowrite32(mit_table[MIT_TABLE], tp->base_addr + CSR11); in tulip_poll()
305 if( tp->mit_on ) { in tulip_poll()
306 tp->mit_on = 0; in tulip_poll()
307 iowrite32(0, tp->base_addr + CSR11); in tulip_poll()
317 if (tp->rx_buffers[tp->dirty_rx % RX_RING_SIZE].skb == NULL) in tulip_poll()
323 iowrite32(tulip_tbl[tp->chip_id].valid_intrs, tp->base_addr+CSR7); in tulip_poll()
339 if (tp->cur_rx - tp->dirty_rx > RX_RING_SIZE/2 || in tulip_poll()
340 tp->rx_buffers[tp->dirty_rx % RX_RING_SIZE].skb == NULL) in tulip_poll()
343 if (tp->rx_buffers[tp->dirty_rx % RX_RING_SIZE].skb == NULL) in tulip_poll()
351 mod_timer(&tp->oom_timer, jiffies+1); in tulip_poll()
367 struct tulip_private *tp = netdev_priv(dev); in tulip_rx() local
368 int entry = tp->cur_rx % RX_RING_SIZE; in tulip_rx()
369 int rx_work_limit = tp->dirty_rx + RX_RING_SIZE - tp->cur_rx; in tulip_rx()
374 entry, tp->rx_ring[entry].status); in tulip_rx()
376 while ( ! (tp->rx_ring[entry].status & cpu_to_le32(DescOwned))) { in tulip_rx()
377 s32 status = le32_to_cpu(tp->rx_ring[entry].status); in tulip_rx()
439 pci_dma_sync_single_for_cpu(tp->pdev, in tulip_rx()
440 tp->rx_buffers[entry].mapping, in tulip_rx()
443 skb_copy_to_linear_data(skb, tp->rx_buffers[entry].skb->data, in tulip_rx()
448 tp->rx_buffers[entry].skb->data, in tulip_rx()
451 pci_dma_sync_single_for_device(tp->pdev, in tulip_rx()
452 tp->rx_buffers[entry].mapping, in tulip_rx()
455 char *temp = skb_put(skb = tp->rx_buffers[entry].skb, in tulip_rx()
459 if (tp->rx_buffers[entry].mapping != in tulip_rx()
460 le32_to_cpu(tp->rx_ring[entry].buffer1)) { in tulip_rx()
463 le32_to_cpu(tp->rx_ring[entry].buffer1), in tulip_rx()
464 (long long)tp->rx_buffers[entry].mapping, in tulip_rx()
469 pci_unmap_single(tp->pdev, tp->rx_buffers[entry].mapping, in tulip_rx()
472 tp->rx_buffers[entry].skb = NULL; in tulip_rx()
473 tp->rx_buffers[entry].mapping = 0; in tulip_rx()
483 entry = (++tp->cur_rx) % RX_RING_SIZE; in tulip_rx()
492 struct tulip_private *tp = netdev_priv(dev); in phy_interrupt() local
493 int csr12 = ioread32(tp->base_addr + CSR12) & 0xff; in phy_interrupt()
495 if (csr12 != tp->csr12_shadow) { in phy_interrupt()
497 iowrite32(csr12 | 0x02, tp->base_addr + CSR12); in phy_interrupt()
498 tp->csr12_shadow = csr12; in phy_interrupt()
500 spin_lock(&tp->lock); in phy_interrupt()
502 spin_unlock(&tp->lock); in phy_interrupt()
504 iowrite32(csr12 & ~0x02, tp->base_addr + CSR12); in phy_interrupt()
518 struct tulip_private *tp = netdev_priv(dev); in tulip_interrupt() local
519 void __iomem *ioaddr = tp->base_addr; in tulip_interrupt()
539 if (tp->flags & HAS_PHY_IRQ) in tulip_interrupt()
545 tp->nir++; in tulip_interrupt()
554 iowrite32(tulip_tbl[tp->chip_id].valid_intrs&~RxPollInt, ioaddr + CSR7); in tulip_interrupt()
555 napi_schedule(&tp->napi); in tulip_interrupt()
586 spin_lock(&tp->lock); in tulip_interrupt()
588 for (dirty_tx = tp->dirty_tx; tp->cur_tx - dirty_tx > 0; in tulip_interrupt()
591 int status = le32_to_cpu(tp->tx_ring[entry].status); in tulip_interrupt()
597 if (tp->tx_buffers[entry].skb == NULL) { in tulip_interrupt()
599 if (tp->tx_buffers[entry].mapping) in tulip_interrupt()
600 pci_unmap_single(tp->pdev, in tulip_interrupt()
601 tp->tx_buffers[entry].mapping, in tulip_interrupt()
602 sizeof(tp->setup_frame), in tulip_interrupt()
623 if ((status & 0x0080) && tp->full_duplex == 0) in tulip_interrupt()
627 tp->tx_buffers[entry].skb->len; in tulip_interrupt()
632 pci_unmap_single(tp->pdev, tp->tx_buffers[entry].mapping, in tulip_interrupt()
633 tp->tx_buffers[entry].skb->len, in tulip_interrupt()
637 dev_kfree_skb_irq(tp->tx_buffers[entry].skb); in tulip_interrupt()
638 tp->tx_buffers[entry].skb = NULL; in tulip_interrupt()
639 tp->tx_buffers[entry].mapping = 0; in tulip_interrupt()
644 if (tp->cur_tx - dirty_tx > TX_RING_SIZE) { in tulip_interrupt()
647 dirty_tx, tp->cur_tx); in tulip_interrupt()
652 if (tp->cur_tx - dirty_tx < TX_RING_SIZE - 2) in tulip_interrupt()
655 tp->dirty_tx = dirty_tx; in tulip_interrupt()
661 tp->csr6); in tulip_interrupt()
662 tulip_restart_rxtx(tp); in tulip_interrupt()
664 spin_unlock(&tp->lock); in tulip_interrupt()
674 if ((tp->csr6 & 0xC000) != 0xC000) in tulip_interrupt()
675 tp->csr6 += 0x4000; /* Bump up the Tx threshold */ in tulip_interrupt()
677 tp->csr6 |= 0x00200000; /* Store-n-forward. */ in tulip_interrupt()
679 tulip_restart_rxtx(tp); in tulip_interrupt()
683 if (tp->flags & COMET_MAC_ADDR) { in tulip_interrupt()
684 iowrite32(tp->mc_filter[0], ioaddr + 0xAC); in tulip_interrupt()
685 iowrite32(tp->mc_filter[1], ioaddr + 0xB0); in tulip_interrupt()
691 tulip_start_rxtx(tp); in tulip_interrupt()
698 if (tp->link_change) in tulip_interrupt()
699 (tp->link_change)(dev, csr5); in tulip_interrupt()
715 tp->nir, error); in tulip_interrupt()
727 iowrite32(tulip_tbl[tp->chip_id].valid_intrs, ioaddr + CSR7); in tulip_interrupt()
728 tp->ttimer = 0; in tulip_interrupt()
734 csr5, tp->nir, tx, rx, oi); in tulip_interrupt()
738 if (tp->flags & HAS_INTR_MITIGATION) { in tulip_interrupt()
742 } else if (tp->chip_id == LC82C168) { in tulip_interrupt()
745 mod_timer(&tp->timer, RUN_AT(HZ/50)); in tulip_interrupt()
780 entry = tp->dirty_rx % RX_RING_SIZE;
781 if (tp->rx_buffers[entry].skb == NULL) {
785 tp->nir, tp->cur_rx, tp->ttimer, rx);
786 if (tp->chip_id == LC82C168) {
788 mod_timer(&tp->timer, RUN_AT(HZ/50));
790 if (tp->ttimer == 0 || (ioread32(ioaddr + CSR11) & 0xffff) == 0) {
794 tp->nir);
795 iowrite32(tulip_tbl[tp->chip_id].valid_intrs | TimerInt,
799 tp->ttimer = 1;