diff options
author | Sreenivasa Honnur <sreenivasa.honnur@neterion.com> | 2008-01-24 04:45:43 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:03:52 -0500 |
commit | faa4f7969f3340606f46515560ce193d9bd74ea4 (patch) | |
tree | 31bd54a2162dd35767baaeaaf4ae55ada2dd7958 /drivers/net/s2io.h | |
parent | db0ce50d3792e993a1b24f16fb70153eccf38f33 (diff) |
[S2IO]: Support for add/delete/store/restore ethernet addresses
- Support to add/delete/store/restore 64 and 128 Ethernet addresses for Xframe I and Xframe II respectively.
Signed-off-by: Sreenivasa Honnur <sreenivasa.honnur@neterion.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/s2io.h')
-rw-r--r-- | drivers/net/s2io.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/net/s2io.h b/drivers/net/s2io.h index cc1797a071aa..b944a948f19d 100644 --- a/drivers/net/s2io.h +++ b/drivers/net/s2io.h | |||
@@ -31,6 +31,7 @@ | |||
31 | #define SUCCESS 0 | 31 | #define SUCCESS 0 |
32 | #define FAILURE -1 | 32 | #define FAILURE -1 |
33 | #define S2IO_MINUS_ONE 0xFFFFFFFFFFFFFFFFULL | 33 | #define S2IO_MINUS_ONE 0xFFFFFFFFFFFFFFFFULL |
34 | #define S2IO_DISABLE_MAC_ENTRY 0xFFFFFFFFFFFFULL | ||
34 | #define S2IO_MAX_PCI_CONFIG_SPACE_REINIT 100 | 35 | #define S2IO_MAX_PCI_CONFIG_SPACE_REINIT 100 |
35 | #define S2IO_BIT_RESET 1 | 36 | #define S2IO_BIT_RESET 1 |
36 | #define S2IO_BIT_SET 2 | 37 | #define S2IO_BIT_SET 2 |
@@ -458,6 +459,9 @@ struct config_param { | |||
458 | #define MAX_MTU_JUMBO (MAX_PYLD_JUMBO+18) | 459 | #define MAX_MTU_JUMBO (MAX_PYLD_JUMBO+18) |
459 | #define MAX_MTU_JUMBO_VLAN (MAX_PYLD_JUMBO+22) | 460 | #define MAX_MTU_JUMBO_VLAN (MAX_PYLD_JUMBO+22) |
460 | u16 bus_speed; | 461 | u16 bus_speed; |
462 | int max_mc_addr; /* xena=64 herc=256 */ | ||
463 | int max_mac_addr; /* xena=16 herc=64 */ | ||
464 | int mc_start_offset; /* xena=16 herc=64 */ | ||
461 | }; | 465 | }; |
462 | 466 | ||
463 | /* Structure representing MAC Addrs */ | 467 | /* Structure representing MAC Addrs */ |
@@ -826,7 +830,7 @@ struct s2io_nic { | |||
826 | #define MAX_MAC_SUPPORTED 16 | 830 | #define MAX_MAC_SUPPORTED 16 |
827 | #define MAX_SUPPORTED_MULTICASTS MAX_MAC_SUPPORTED | 831 | #define MAX_SUPPORTED_MULTICASTS MAX_MAC_SUPPORTED |
828 | 832 | ||
829 | struct mac_addr def_mac_addr[MAX_MAC_SUPPORTED]; | 833 | struct mac_addr def_mac_addr[256]; |
830 | 834 | ||
831 | struct net_device_stats stats; | 835 | struct net_device_stats stats; |
832 | int high_dma_flag; | 836 | int high_dma_flag; |
@@ -853,7 +857,7 @@ struct s2io_nic { | |||
853 | #define MAX_ADDRS_SUPPORTED 64 | 857 | #define MAX_ADDRS_SUPPORTED 64 |
854 | u16 usr_addr_count; | 858 | u16 usr_addr_count; |
855 | u16 mc_addr_count; | 859 | u16 mc_addr_count; |
856 | struct usr_addr usr_addrs[MAX_ADDRS_SUPPORTED]; | 860 | struct usr_addr usr_addrs[256]; |
857 | 861 | ||
858 | u16 m_cast_flg; | 862 | u16 m_cast_flg; |
859 | u16 all_multi_pos; | 863 | u16 all_multi_pos; |
@@ -1066,6 +1070,12 @@ static int s2io_add_isr(struct s2io_nic * sp); | |||
1066 | static void s2io_rem_isr(struct s2io_nic * sp); | 1070 | static void s2io_rem_isr(struct s2io_nic * sp); |
1067 | 1071 | ||
1068 | static void restore_xmsi_data(struct s2io_nic *nic); | 1072 | static void restore_xmsi_data(struct s2io_nic *nic); |
1073 | static void do_s2io_store_unicast_mc(struct s2io_nic *sp); | ||
1074 | static void do_s2io_restore_unicast_mc(struct s2io_nic *sp); | ||
1075 | static u64 do_s2io_read_unicast_mc(struct s2io_nic *sp, int offset); | ||
1076 | static int do_s2io_add_mc(struct s2io_nic *sp, u8 *addr); | ||
1077 | static int do_s2io_add_mac(struct s2io_nic *sp, u64 addr, int offset); | ||
1078 | static int do_s2io_delete_unicast_mc(struct s2io_nic *sp, u64 addr); | ||
1069 | 1079 | ||
1070 | static int | 1080 | static int |
1071 | s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, struct lro **lro, | 1081 | s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, struct lro **lro, |