aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/s2io.h
diff options
context:
space:
mode:
authorSurjit Reang <surjit.reang@neterion.com>2008-01-24 05:08:59 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:07:23 -0500
commit2fda096d188ddae51a0fe8cd5b13cf9c84b03c1e (patch)
tree6655b7f5292345109156930d54489e0d94b2f168 /drivers/net/s2io.h
parentbc4b6b52691bae42b1eec3eb86ab4c718387d9f0 (diff)
S2io: Fixes to enable multiple transmit fifo support
Fixes to enable multiple transmit fifos (upto a maximum of eight). - Moved single tx_lock from struct s2io_nic to struct fifo_info. - Moved single ufo_in_band_v structure from struct s2io_nic to struct fifo_info. - Assign the respective interrupt number for the transmitting fifo in the transmit descriptor (TXD). - Added boundary checks for number of FIFOs enabled and FIFO length. Signed-off-by: Surjit Reang <surjit.reang@neterion.com> Signed-off-by: Sreenivasa Honnur <sreenivasa.honnur@neterion.com> Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com> Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/s2io.h')
-rw-r--r--drivers/net/s2io.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/s2io.h b/drivers/net/s2io.h
index b944a948f19d..9f6016c6f135 100644
--- a/drivers/net/s2io.h
+++ b/drivers/net/s2io.h
@@ -360,6 +360,8 @@ struct stat_block {
360#define MAX_TX_FIFOS 8 360#define MAX_TX_FIFOS 8
361#define MAX_RX_RINGS 8 361#define MAX_RX_RINGS 8
362 362
363#define FIFO_DEFAULT_NUM 1
364
363#define MAX_RX_DESC_1 (MAX_RX_RINGS * MAX_RX_BLOCKS_PER_RING * 127 ) 365#define MAX_RX_DESC_1 (MAX_RX_RINGS * MAX_RX_BLOCKS_PER_RING * 127 )
364#define MAX_RX_DESC_2 (MAX_RX_RINGS * MAX_RX_BLOCKS_PER_RING * 85 ) 366#define MAX_RX_DESC_2 (MAX_RX_RINGS * MAX_RX_BLOCKS_PER_RING * 85 )
365#define MAX_RX_DESC_3 (MAX_RX_RINGS * MAX_RX_BLOCKS_PER_RING * 85 ) 367#define MAX_RX_DESC_3 (MAX_RX_RINGS * MAX_RX_BLOCKS_PER_RING * 85 )
@@ -719,8 +721,14 @@ struct fifo_info {
719 */ 721 */
720 struct tx_curr_get_info tx_curr_get_info; 722 struct tx_curr_get_info tx_curr_get_info;
721 723
724 /* Per fifo lock */
725 spinlock_t tx_lock;
726
727 /* Per fifo UFO in band structure */
728 u64 *ufo_in_band_v;
729
722 struct s2io_nic *nic; 730 struct s2io_nic *nic;
723}; 731} ____cacheline_aligned;
724 732
725/* Information related to the Tx and Rx FIFOs and Rings of Xena 733/* Information related to the Tx and Rx FIFOs and Rings of Xena
726 * is maintained in this structure. 734 * is maintained in this structure.
@@ -848,7 +856,6 @@ struct s2io_nic {
848 856
849 atomic_t rx_bufs_left[MAX_RX_RINGS]; 857 atomic_t rx_bufs_left[MAX_RX_RINGS];
850 858
851 spinlock_t tx_lock;
852 spinlock_t put_lock; 859 spinlock_t put_lock;
853 860
854#define PROMISC 1 861#define PROMISC 1
@@ -915,7 +922,6 @@ struct s2io_nic {
915 volatile unsigned long state; 922 volatile unsigned long state;
916 spinlock_t rx_lock; 923 spinlock_t rx_lock;
917 u64 general_int_mask; 924 u64 general_int_mask;
918 u64 *ufo_in_band_v;
919#define VPD_STRING_LEN 80 925#define VPD_STRING_LEN 80
920 u8 product_name[VPD_STRING_LEN]; 926 u8 product_name[VPD_STRING_LEN];
921 u8 serial_num[VPD_STRING_LEN]; 927 u8 serial_num[VPD_STRING_LEN];