aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000e/82571.c
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2010-01-12 21:05:38 -0500
committerDavid S. Miller <davem@davemloft.net>2010-01-13 23:31:57 -0500
commitab8932f3e8e07df92d6ce3fa41f5af0dda865429 (patch)
treeadfd802b04591e62b4743790ea8308f24f46d3e4 /drivers/net/e1000e/82571.c
parentf4d2dd4cd4d001f5dc20fc76c780c0c20c000c23 (diff)
e1000e: genericize the update multicast address list
Make updating the multicast address list generic for all families and enforce the requirement to update the entire multicast table array all at once instead of piecemeal which causes problems on some parts. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/e1000e/82571.c')
-rw-r--r--drivers/net/e1000e/82571.c28
1 files changed, 1 insertions, 27 deletions
diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c
index 7674a91824bc..3c95acb3a87d 100644
--- a/drivers/net/e1000e/82571.c
+++ b/drivers/net/e1000e/82571.c
@@ -1234,32 +1234,6 @@ static s32 e1000_led_on_82574(struct e1000_hw *hw)
1234} 1234}
1235 1235
1236/** 1236/**
1237 * e1000_update_mc_addr_list_82571 - Update Multicast addresses
1238 * @hw: pointer to the HW structure
1239 * @mc_addr_list: array of multicast addresses to program
1240 * @mc_addr_count: number of multicast addresses to program
1241 * @rar_used_count: the first RAR register free to program
1242 * @rar_count: total number of supported Receive Address Registers
1243 *
1244 * Updates the Receive Address Registers and Multicast Table Array.
1245 * The caller must have a packed mc_addr_list of multicast addresses.
1246 * The parameter rar_count will usually be hw->mac.rar_entry_count
1247 * unless there are workarounds that change this.
1248 **/
1249static void e1000_update_mc_addr_list_82571(struct e1000_hw *hw,
1250 u8 *mc_addr_list,
1251 u32 mc_addr_count,
1252 u32 rar_used_count,
1253 u32 rar_count)
1254{
1255 if (e1000e_get_laa_state_82571(hw))
1256 rar_count--;
1257
1258 e1000e_update_mc_addr_list_generic(hw, mc_addr_list, mc_addr_count,
1259 rar_used_count, rar_count);
1260}
1261
1262/**
1263 * e1000_setup_link_82571 - Setup flow control and link settings 1237 * e1000_setup_link_82571 - Setup flow control and link settings
1264 * @hw: pointer to the HW structure 1238 * @hw: pointer to the HW structure
1265 * 1239 *
@@ -1731,7 +1705,7 @@ static struct e1000_mac_operations e82571_mac_ops = {
1731 /* .get_link_up_info: media type dependent */ 1705 /* .get_link_up_info: media type dependent */
1732 /* .led_on: mac type dependent */ 1706 /* .led_on: mac type dependent */
1733 .led_off = e1000e_led_off_generic, 1707 .led_off = e1000e_led_off_generic,
1734 .update_mc_addr_list = e1000_update_mc_addr_list_82571, 1708 .update_mc_addr_list = e1000e_update_mc_addr_list_generic,
1735 .write_vfta = e1000_write_vfta_generic, 1709 .write_vfta = e1000_write_vfta_generic,
1736 .clear_vfta = e1000_clear_vfta_82571, 1710 .clear_vfta = e1000_clear_vfta_82571,
1737 .reset_hw = e1000_reset_hw_82571, 1711 .reset_hw = e1000_reset_hw_82571,