aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2x/bnx2x.h
diff options
context:
space:
mode:
authorVladislav Zolotarov <vladz@broadcom.com>2011-02-06 14:25:41 -0500
committerDavid S. Miller <davem@davemloft.net>2011-02-06 14:25:41 -0500
commit6e30dd4e3935ddb4e7dd27d5be7a6e5504e64a27 (patch)
tree9ce171d9f20bec820fe1ca0ae565ffb474e8214f /drivers/net/bnx2x/bnx2x.h
parenta8c94b9188bf6012d9b6c3d37f324bd6c7d2924e (diff)
bnx2x: Proper netdev->ndo_set_rx_mode() implementation.
Completed the bnx2x_set_rx_mode() to a proper netdev->ndo_set_rx_mode implementation: - Added a missing configuration of a unicast MAC addresses list. - Changed bp->dma_lock from being a mutex to a spinlock as long as it's taken under netdev->addr_list_lock now. Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2x/bnx2x.h')
-rw-r--r--drivers/net/bnx2x/bnx2x.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/bnx2x/bnx2x.h b/drivers/net/bnx2x/bnx2x.h
index c29b37e5e743..236d79a80624 100644
--- a/drivers/net/bnx2x/bnx2x.h
+++ b/drivers/net/bnx2x/bnx2x.h
@@ -129,6 +129,7 @@ void bnx2x_panic_dump(struct bnx2x *bp);
129#endif 129#endif
130 130
131#define bnx2x_mc_addr(ha) ((ha)->addr) 131#define bnx2x_mc_addr(ha) ((ha)->addr)
132#define bnx2x_uc_addr(ha) ((ha)->addr)
132 133
133#define U64_LO(x) (u32)(((u64)(x)) & 0xffffffff) 134#define U64_LO(x) (u32)(((u64)(x)) & 0xffffffff)
134#define U64_HI(x) (u32)(((u64)(x)) >> 32) 135#define U64_HI(x) (u32)(((u64)(x)) >> 32)
@@ -816,6 +817,7 @@ struct bnx2x_slowpath {
816 struct eth_stats_query fw_stats; 817 struct eth_stats_query fw_stats;
817 struct mac_configuration_cmd mac_config; 818 struct mac_configuration_cmd mac_config;
818 struct mac_configuration_cmd mcast_config; 819 struct mac_configuration_cmd mcast_config;
820 struct mac_configuration_cmd uc_mac_config;
819 struct client_init_ramrod_data client_init_data; 821 struct client_init_ramrod_data client_init_data;
820 822
821 /* used by dmae command executer */ 823 /* used by dmae command executer */
@@ -944,7 +946,7 @@ struct bnx2x {
944 struct eth_spe *spq_prod_bd; 946 struct eth_spe *spq_prod_bd;
945 struct eth_spe *spq_last_bd; 947 struct eth_spe *spq_last_bd;
946 __le16 *dsb_sp_prod; 948 __le16 *dsb_sp_prod;
947 atomic_t spq_left; /* serialize spq */ 949 atomic_t cq_spq_left; /* ETH_XXX ramrods credit */
948 /* used to synchronize spq accesses */ 950 /* used to synchronize spq accesses */
949 spinlock_t spq_lock; 951 spinlock_t spq_lock;
950 952
@@ -954,6 +956,7 @@ struct bnx2x {
954 u16 eq_prod; 956 u16 eq_prod;
955 u16 eq_cons; 957 u16 eq_cons;
956 __le16 *eq_cons_sb; 958 __le16 *eq_cons_sb;
959 atomic_t eq_spq_left; /* COMMON_XXX ramrods credit */
957 960
958 /* Flags for marking that there is a STAT_QUERY or 961 /* Flags for marking that there is a STAT_QUERY or
959 SET_MAC ramrod pending */ 962 SET_MAC ramrod pending */
@@ -1139,7 +1142,7 @@ struct bnx2x {
1139 1142
1140 int dmae_ready; 1143 int dmae_ready;
1141 /* used to synchronize dmae accesses */ 1144 /* used to synchronize dmae accesses */
1142 struct mutex dmae_mutex; 1145 spinlock_t dmae_lock;
1143 1146
1144 /* used to protect the FW mail box */ 1147 /* used to protect the FW mail box */
1145 struct mutex fw_mb_mutex; 1148 struct mutex fw_mb_mutex;
@@ -1455,6 +1458,12 @@ u32 bnx2x_fw_command(struct bnx2x *bp, u32 command, u32 param);
1455void bnx2x_calc_fc_adv(struct bnx2x *bp); 1458void bnx2x_calc_fc_adv(struct bnx2x *bp);
1456int bnx2x_sp_post(struct bnx2x *bp, int command, int cid, 1459int bnx2x_sp_post(struct bnx2x *bp, int command, int cid,
1457 u32 data_hi, u32 data_lo, int common); 1460 u32 data_hi, u32 data_lo, int common);
1461
1462/* Clears multicast and unicast list configuration in the chip. */
1463void bnx2x_invalidate_e1_mc_list(struct bnx2x *bp);
1464void bnx2x_invalidate_e1h_mc_list(struct bnx2x *bp);
1465void bnx2x_invalidate_uc_list(struct bnx2x *bp);
1466
1458void bnx2x_update_coalesce(struct bnx2x *bp); 1467void bnx2x_update_coalesce(struct bnx2x *bp);
1459int bnx2x_get_link_cfg_idx(struct bnx2x *bp); 1468int bnx2x_get_link_cfg_idx(struct bnx2x *bp);
1460 1469