aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/igb/igb.h
diff options
context:
space:
mode:
authorPeter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>2008-07-08 18:06:51 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-07-11 01:20:31 -0400
commit661086df6cf35f62d0aec09ccb9164eb2baaaecd (patch)
tree5e0419fc106b5663595678512236d207b870faa7 /drivers/net/igb/igb.h
parentf731a9ef82c6728559b34743bca19d231e5e1b63 (diff)
igb: Introduce multiple TX queues with infrastructure
This code adds multiple Tx queue infrastructure much like we previously did in ixgbe. The MSI-X vector mapping is the bulk of the change. IAM can now be safely enabled and we've verified that it does work correctly. We can also eliminate the tx ring lock. Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/igb/igb.h')
-rw-r--r--drivers/net/igb/igb.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/igb/igb.h b/drivers/net/igb/igb.h
index 2c48eec17660..a1431c8797b9 100644
--- a/drivers/net/igb/igb.h
+++ b/drivers/net/igb/igb.h
@@ -62,6 +62,7 @@ struct igb_adapter;
62 62
63/* Transmit and receive queues */ 63/* Transmit and receive queues */
64#define IGB_MAX_RX_QUEUES 4 64#define IGB_MAX_RX_QUEUES 4
65#define IGB_MAX_TX_QUEUES 4
65 66
66/* RX descriptor control thresholds. 67/* RX descriptor control thresholds.
67 * PTHRESH - MAC will consider prefetch if it has fewer than this number of 68 * PTHRESH - MAC will consider prefetch if it has fewer than this number of
@@ -157,8 +158,6 @@ struct igb_ring {
157 union { 158 union {
158 /* TX */ 159 /* TX */
159 struct { 160 struct {
160 spinlock_t tx_clean_lock;
161 spinlock_t tx_lock;
162 bool detect_tx_hung; 161 bool detect_tx_hung;
163 }; 162 };
164 /* RX */ 163 /* RX */
@@ -277,6 +276,10 @@ struct igb_adapter {
277 /* for ioport free */ 276 /* for ioport free */
278 int bars; 277 int bars;
279 int need_ioport; 278 int need_ioport;
279
280#ifdef CONFIG_NETDEVICES_MULTIQUEUE
281 struct igb_ring *multi_tx_table[IGB_MAX_TX_QUEUES];
282#endif /* CONFIG_NETDEVICES_MULTIQUEUE */
280}; 283};
281 284
282enum e1000_state_t { 285enum e1000_state_t {