diff options
author | Dhananjay Phadke <dhananjay@netxen.com> | 2009-04-07 18:50:46 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-08 18:58:30 -0400 |
commit | f6d21f44122630cc9549b8ffbab23ea8c68254e0 (patch) | |
tree | f4dd12d962fc94b303e1a6fdcfed691cfdd7b5cb /drivers/net/netxen/netxen_nic.h | |
parent | f98a9f693b5f4919d9c4085a2fd8d67c7e152f3e (diff) |
netxen: enable rss for NX2031
Enable multiple rx rings for older NX2031 chip, firmware 3.4.336
or newer supports this feature.
Signed-off-by: Amit Kumar Salecha <amit@netxen.com>
Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netxen/netxen_nic.h')
-rw-r--r-- | drivers/net/netxen/netxen_nic.h | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h index f13fd0282f55..ebd6c2edc343 100644 --- a/drivers/net/netxen/netxen_nic.h +++ b/drivers/net/netxen/netxen_nic.h | |||
@@ -195,6 +195,8 @@ | |||
195 | #define MAX_JUMBO_RCV_DESCRIPTORS 1024 | 195 | #define MAX_JUMBO_RCV_DESCRIPTORS 1024 |
196 | #define MAX_LRO_RCV_DESCRIPTORS 8 | 196 | #define MAX_LRO_RCV_DESCRIPTORS 8 |
197 | #define NETXEN_CTX_SIGNATURE 0xdee0 | 197 | #define NETXEN_CTX_SIGNATURE 0xdee0 |
198 | #define NETXEN_CTX_SIGNATURE_V2 0x0002dee0 | ||
199 | #define NETXEN_CTX_RESET 0xbad0 | ||
198 | #define NETXEN_RCV_PRODUCER(ringid) (ringid) | 200 | #define NETXEN_RCV_PRODUCER(ringid) (ringid) |
199 | 201 | ||
200 | #define PHAN_PEG_RCV_INITIALIZED 0xff01 | 202 | #define PHAN_PEG_RCV_INITIALIZED 0xff01 |
@@ -234,12 +236,19 @@ typedef u32 netxen_ctx_msg; | |||
234 | #define netxen_set_msg_opcode(config_word, val) \ | 236 | #define netxen_set_msg_opcode(config_word, val) \ |
235 | ((config_word) &= ~(0xf<<28), (config_word) |= (val & 0xf) << 28) | 237 | ((config_word) &= ~(0xf<<28), (config_word) |= (val & 0xf) << 28) |
236 | 238 | ||
237 | struct netxen_rcv_context { | 239 | struct netxen_rcv_ring { |
238 | __le64 rcv_ring_addr; | 240 | __le64 addr; |
239 | __le32 rcv_ring_size; | 241 | __le32 size; |
240 | __le32 rsrvd; | 242 | __le32 rsrvd; |
241 | }; | 243 | }; |
242 | 244 | ||
245 | struct netxen_sts_ring { | ||
246 | __le64 addr; | ||
247 | __le32 size; | ||
248 | __le16 msi_index; | ||
249 | __le16 rsvd; | ||
250 | } ; | ||
251 | |||
243 | struct netxen_ring_ctx { | 252 | struct netxen_ring_ctx { |
244 | 253 | ||
245 | /* one command ring */ | 254 | /* one command ring */ |
@@ -249,13 +258,18 @@ struct netxen_ring_ctx { | |||
249 | __le32 rsrvd; | 258 | __le32 rsrvd; |
250 | 259 | ||
251 | /* three receive rings */ | 260 | /* three receive rings */ |
252 | struct netxen_rcv_context rcv_ctx[3]; | 261 | struct netxen_rcv_ring rcv_rings[NUM_RCV_DESC_RINGS]; |
253 | 262 | ||
254 | /* one status ring */ | ||
255 | __le64 sts_ring_addr; | 263 | __le64 sts_ring_addr; |
256 | __le32 sts_ring_size; | 264 | __le32 sts_ring_size; |
257 | 265 | ||
258 | __le32 ctx_id; | 266 | __le32 ctx_id; |
267 | |||
268 | __le64 rsrvd_2[3]; | ||
269 | __le32 sts_ring_count; | ||
270 | __le32 rsrvd_3; | ||
271 | struct netxen_sts_ring sts_rings[NUM_STS_DESC_RINGS]; | ||
272 | |||
259 | } __attribute__ ((aligned(64))); | 273 | } __attribute__ ((aligned(64))); |
260 | 274 | ||
261 | /* | 275 | /* |
@@ -1219,7 +1233,8 @@ struct netxen_adapter { | |||
1219 | 1233 | ||
1220 | u8 mc_enabled; | 1234 | u8 mc_enabled; |
1221 | u8 max_mc_count; | 1235 | u8 max_mc_count; |
1222 | u16 resv2; | 1236 | u8 rss_supported; |
1237 | u8 resv2; | ||
1223 | u32 resv3; | 1238 | u32 resv3; |
1224 | 1239 | ||
1225 | u8 has_link_events; | 1240 | u8 has_link_events; |