• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/net/e1000/

Lines Matching defs:tx_ring

130                              struct e1000_tx_ring *tx_ring);
149 struct e1000_tx_ring *tx_ring);
163 struct e1000_tx_ring *tx_ring);
1175 kfree(adapter->tx_ring);
1228 kfree(adapter->tx_ring);
1354 adapter->tx_ring = kcalloc(adapter->num_tx_queues,
1356 if (!adapter->tx_ring)
1362 kfree(adapter->tx_ring);
1371 kfree(adapter->tx_ring);
1619 err = e1000_setup_tx_resources(adapter, &adapter->tx_ring[i]);
1625 &adapter->tx_ring[i]);
1653 tdba = adapter->tx_ring[0].dma;
1654 tdlen = adapter->tx_ring[0].count *
1661 adapter->tx_ring[0].tdh = ((hw->mac_type >= e1000_82543) ? E1000_TDH : E1000_82542_TDH);
1662 adapter->tx_ring[0].tdt = ((hw->mac_type >= e1000_82543) ? E1000_TDT : E1000_82542_TDT);
2096 * @tx_ring: Tx descriptor ring for a specific queue
2103 struct e1000_tx_ring *tx_ring)
2107 e1000_clean_tx_ring(adapter, tx_ring);
2109 vfree(tx_ring->buffer_info);
2110 tx_ring->buffer_info = NULL;
2112 pci_free_consistent(pdev, tx_ring->size, tx_ring->desc, tx_ring->dma);
2114 tx_ring->desc = NULL;
2130 e1000_free_tx_resources(adapter, &adapter->tx_ring[i]);
2154 * @tx_ring: ring to be cleaned
2159 struct e1000_tx_ring *tx_ring)
2167 for (i = 0; i < tx_ring->count; i++) {
2168 buffer_info = &tx_ring->buffer_info[i];
2172 size = sizeof(struct e1000_buffer) * tx_ring->count;
2173 memset(tx_ring->buffer_info, 0, size);
2177 memset(tx_ring->desc, 0, tx_ring->size);
2179 tx_ring->next_to_use = 0;
2180 tx_ring->next_to_clean = 0;
2181 tx_ring->last_tx_tso = 0;
2183 writel(0, adapter->hw.hw_addr + tx_ring->tdh);
2184 writel(0, adapter->hw.hw_addr + tx_ring->tdt);
2198 e1000_clean_tx_ring(adapter, &adapter->tx_ring[i]);
2558 struct e1000_tx_ring *txdr = adapter->tx_ring;
2870 e1000_tso(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring,
2917 i = tx_ring->next_to_use;
2918 context_desc = E1000_CONTEXT_DESC(*tx_ring, i);
2919 buffer_info = &tx_ring->buffer_info[i];
2934 if (++i == tx_ring->count) i = 0;
2935 tx_ring->next_to_use = i;
2943 e1000_tx_csum(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring,
2954 i = tx_ring->next_to_use;
2955 buffer_info = &tx_ring->buffer_info[i];
2956 context_desc = E1000_CONTEXT_DESC(*tx_ring, i);
2969 if (unlikely(++i == tx_ring->count)) i = 0;
2970 tx_ring->next_to_use = i;
2982 e1000_tx_map(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring,
2992 i = tx_ring->next_to_use;
2995 buffer_info = &tx_ring->buffer_info[i];
2997 if (!skb->data_len && tx_ring->last_tx_tso &&
2999 tx_ring->last_tx_tso = 0;
3026 if (unlikely(++i == tx_ring->count)) i = 0;
3037 buffer_info = &tx_ring->buffer_info[i];
3059 if (unlikely(++i == tx_ring->count)) i = 0;
3063 i = (i == 0) ? tx_ring->count - 1 : i - 1;
3064 tx_ring->buffer_info[i].skb = skb;
3065 tx_ring->buffer_info[first].next_to_watch = i;
3071 e1000_tx_queue(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring,
3098 i = tx_ring->next_to_use;
3101 buffer_info = &tx_ring->buffer_info[i];
3102 tx_desc = E1000_TX_DESC(*tx_ring, i);
3107 if (unlikely(++i == tx_ring->count)) i = 0;
3118 tx_ring->next_to_use = i;
3119 writel(i, adapter->hw.hw_addr + tx_ring->tdt);
3193 struct e1000_tx_ring *tx_ring = adapter->tx_ring;
3203 if (likely(E1000_DESC_UNUSED(tx_ring) < size))
3213 struct e1000_tx_ring *tx_ring, int size)
3215 if (likely(E1000_DESC_UNUSED(tx_ring) >= size))
3225 struct e1000_tx_ring *tx_ring;
3242 tx_ring = adapter->tx_ring;
3297 if (!skb->data_len && tx_ring->last_tx_tso && !skb_is_gso(skb))
3321 if (!spin_trylock_irqsave(&tx_ring->tx_lock, flags))
3327 if (unlikely(e1000_maybe_stop_tx(netdev, tx_ring, count + 2))) {
3328 spin_unlock_irqrestore(&tx_ring->tx_lock, flags);
3336 spin_unlock_irqrestore(&tx_ring->tx_lock, flags);
3346 first = tx_ring->next_to_use;
3348 tso = e1000_tso(adapter, tx_ring, skb);
3351 spin_unlock_irqrestore(&tx_ring->tx_lock, flags);
3356 tx_ring->last_tx_tso = 1;
3358 } else if (likely(e1000_tx_csum(adapter, tx_ring, skb)))
3367 e1000_tx_queue(adapter, tx_ring, tx_flags,
3368 e1000_tx_map(adapter, tx_ring, skb, first,
3374 e1000_maybe_stop_tx(netdev, tx_ring, MAX_SKB_FRAGS + 2);
3376 spin_unlock_irqrestore(&tx_ring->tx_lock, flags);
3747 !e1000_clean_tx_irq(adapter, adapter->tx_ring)))
3844 !e1000_clean_tx_irq(adapter, adapter->tx_ring)))
3878 * tx_ring[0] from being cleaned by multiple cpus
3880 * tx_ring[0] is currently being cleaned anyway. */
3883 &adapter->tx_ring[0]);
3915 struct e1000_tx_ring *tx_ring)
3927 i = tx_ring->next_to_clean;
3928 eop = tx_ring->buffer_info[i].next_to_watch;
3929 eop_desc = E1000_TX_DESC(*tx_ring, eop);
3933 tx_desc = E1000_TX_DESC(*tx_ring, i);
3934 buffer_info = &tx_ring->buffer_info[i];
3950 if (unlikely(++i == tx_ring->count)) i = 0;
3953 eop = tx_ring->buffer_info[i].next_to_watch;
3954 eop_desc = E1000_TX_DESC(*tx_ring, eop);
3962 tx_ring->next_to_clean = i;
3966 E1000_DESC_UNUSED(tx_ring) >= TX_WAKE_THRESHOLD)) {
3981 if (tx_ring->buffer_info[eop].dma &&
3982 time_after(jiffies, tx_ring->buffer_info[eop].time_stamp +
3999 (unsigned long)((tx_ring - adapter->tx_ring) /
4001 readl(adapter->hw.hw_addr + tx_ring->tdh),
4002 readl(adapter->hw.hw_addr + tx_ring->tdt),
4003 tx_ring->next_to_use,
4004 tx_ring->next_to_clean,
4005 tx_ring->buffer_info[eop].time_stamp,
5167 e1000_clean_tx_irq(adapter, adapter->tx_ring);