diff options
author | Michael Chan <mchan@broadcom.com> | 2008-06-19 19:38:19 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-06-19 19:38:19 -0400 |
commit | bb4f98abf590cf9899017f14f1a54984f02a0009 (patch) | |
tree | 602da9b7cab22a16f2f1fd77f5db51a3de44b085 /drivers/net/bnx2.h | |
parent | 35e9010b22503f42cbf88144ffe1feff90ea3835 (diff) |
bnx2: Put rx ring variables in a separate struct.
In preparation for multi-ring support, rx ring variables are now put
in a separate bnx2_rx_ring_info struct. With MSI-X, we can support
multiple rx rings.
The functions to allocate/free rx memory and to initialize rx rings
are now modified to handle multiple rings.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2.h')
-rw-r--r-- | drivers/net/bnx2.h | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h index e4f0fb45bc6d..1c5ce80f6269 100644 --- a/drivers/net/bnx2.h +++ b/drivers/net/bnx2.h | |||
@@ -6479,6 +6479,7 @@ struct l2_fhdr { | |||
6479 | #define TX_CID 16 | 6479 | #define TX_CID 16 |
6480 | #define TX_TSS_CID 32 | 6480 | #define TX_TSS_CID 32 |
6481 | #define RX_CID 0 | 6481 | #define RX_CID 0 |
6482 | #define RX_RSS_CID 4 | ||
6482 | 6483 | ||
6483 | #define MB_TX_CID_ADDR MB_GET_CID_ADDR(TX_CID) | 6484 | #define MB_TX_CID_ADDR MB_GET_CID_ADDR(TX_CID) |
6484 | #define MB_RX_CID_ADDR MB_GET_CID_ADDR(RX_CID) | 6485 | #define MB_RX_CID_ADDR MB_GET_CID_ADDR(RX_CID) |
@@ -6584,6 +6585,27 @@ struct bnx2_tx_ring_info { | |||
6584 | dma_addr_t tx_desc_mapping; | 6585 | dma_addr_t tx_desc_mapping; |
6585 | }; | 6586 | }; |
6586 | 6587 | ||
6588 | struct bnx2_rx_ring_info { | ||
6589 | u32 rx_prod_bseq; | ||
6590 | u16 rx_prod; | ||
6591 | u16 rx_cons; | ||
6592 | |||
6593 | u32 rx_bidx_addr; | ||
6594 | u32 rx_bseq_addr; | ||
6595 | u32 rx_pg_bidx_addr; | ||
6596 | |||
6597 | u16 rx_pg_prod; | ||
6598 | u16 rx_pg_cons; | ||
6599 | |||
6600 | struct sw_bd *rx_buf_ring; | ||
6601 | struct rx_bd *rx_desc_ring[MAX_RX_RINGS]; | ||
6602 | struct sw_pg *rx_pg_ring; | ||
6603 | struct rx_bd *rx_pg_desc_ring[MAX_RX_PG_RINGS]; | ||
6604 | |||
6605 | dma_addr_t rx_desc_mapping[MAX_RX_RINGS]; | ||
6606 | dma_addr_t rx_pg_desc_mapping[MAX_RX_PG_RINGS]; | ||
6607 | }; | ||
6608 | |||
6587 | struct bnx2_napi { | 6609 | struct bnx2_napi { |
6588 | struct napi_struct napi ____cacheline_aligned; | 6610 | struct napi_struct napi ____cacheline_aligned; |
6589 | struct bnx2 *bp; | 6611 | struct bnx2 *bp; |
@@ -6592,13 +6614,7 @@ struct bnx2_napi { | |||
6592 | u32 last_status_idx; | 6614 | u32 last_status_idx; |
6593 | u32 int_num; | 6615 | u32 int_num; |
6594 | 6616 | ||
6595 | u32 rx_prod_bseq; | 6617 | struct bnx2_rx_ring_info rx_ring; |
6596 | u16 rx_prod; | ||
6597 | u16 rx_cons; | ||
6598 | |||
6599 | u16 rx_pg_prod; | ||
6600 | u16 rx_pg_cons; | ||
6601 | |||
6602 | struct bnx2_tx_ring_info tx_ring; | 6618 | struct bnx2_tx_ring_info tx_ring; |
6603 | }; | 6619 | }; |
6604 | 6620 | ||
@@ -6642,11 +6658,6 @@ struct bnx2 { | |||
6642 | 6658 | ||
6643 | u32 rx_csum; | 6659 | u32 rx_csum; |
6644 | 6660 | ||
6645 | struct sw_bd *rx_buf_ring; | ||
6646 | struct rx_bd *rx_desc_ring[MAX_RX_RINGS]; | ||
6647 | struct sw_pg *rx_pg_ring; | ||
6648 | struct rx_bd *rx_pg_desc_ring[MAX_RX_PG_RINGS]; | ||
6649 | |||
6650 | /* TX constants */ | 6661 | /* TX constants */ |
6651 | int tx_ring_size; | 6662 | int tx_ring_size; |
6652 | u32 tx_wake_thresh; | 6663 | u32 tx_wake_thresh; |
@@ -6727,11 +6738,9 @@ struct bnx2 { | |||
6727 | 6738 | ||
6728 | int rx_max_ring; | 6739 | int rx_max_ring; |
6729 | int rx_ring_size; | 6740 | int rx_ring_size; |
6730 | dma_addr_t rx_desc_mapping[MAX_RX_RINGS]; | ||
6731 | 6741 | ||
6732 | int rx_max_pg_ring; | 6742 | int rx_max_pg_ring; |
6733 | int rx_pg_ring_size; | 6743 | int rx_pg_ring_size; |
6734 | dma_addr_t rx_pg_desc_mapping[MAX_RX_PG_RINGS]; | ||
6735 | 6744 | ||
6736 | u16 tx_quick_cons_trip; | 6745 | u16 tx_quick_cons_trip; |
6737 | u16 tx_quick_cons_trip_int; | 6746 | u16 tx_quick_cons_trip_int; |
@@ -6814,6 +6823,7 @@ struct bnx2 { | |||
6814 | int irq_nvecs; | 6823 | int irq_nvecs; |
6815 | 6824 | ||
6816 | u8 num_tx_rings; | 6825 | u8 num_tx_rings; |
6826 | u8 num_rx_rings; | ||
6817 | }; | 6827 | }; |
6818 | 6828 | ||
6819 | #define REG_RD(bp, offset) \ | 6829 | #define REG_RD(bp, offset) \ |