diff options
author | Surjit Reang <surjit.reang@neterion.com> | 2008-01-24 05:08:59 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:07:23 -0500 |
commit | 2fda096d188ddae51a0fe8cd5b13cf9c84b03c1e (patch) | |
tree | 6655b7f5292345109156930d54489e0d94b2f168 /drivers/net/s2io.h | |
parent | bc4b6b52691bae42b1eec3eb86ab4c718387d9f0 (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.h | 12 |
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]; |