diff options
author | Don Skidmore <donald.c.skidmore@intel.com> | 2010-11-16 22:27:15 -0500 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2010-11-16 22:27:15 -0500 |
commit | a391f1d51244b8274920a33c5d11aeebec3aa68f (patch) | |
tree | f550a62c357a6f63ee0dc7b77432d7c681663688 /drivers/net/ixgbe/ixgbe_82598.c | |
parent | 9b55bb038468a7b504ccdc1d956952598ae1b85b (diff) |
ixgbe: make silicon specific functions generic
The new MAC type X540 shares much of the same functionality of
some silicon specific functions. To reduce duplicate code,
made these functions generic.
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_82598.c')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_82598.c | 37 |
1 files changed, 2 insertions, 35 deletions
diff --git a/drivers/net/ixgbe/ixgbe_82598.c b/drivers/net/ixgbe/ixgbe_82598.c index 25b20f93190..d0f1d9d2c41 100644 --- a/drivers/net/ixgbe/ixgbe_82598.c +++ b/drivers/net/ixgbe/ixgbe_82598.c | |||
@@ -38,9 +38,6 @@ | |||
38 | #define IXGBE_82598_MC_TBL_SIZE 128 | 38 | #define IXGBE_82598_MC_TBL_SIZE 128 |
39 | #define IXGBE_82598_VFT_TBL_SIZE 128 | 39 | #define IXGBE_82598_VFT_TBL_SIZE 128 |
40 | 40 | ||
41 | static s32 ixgbe_get_copper_link_capabilities_82598(struct ixgbe_hw *hw, | ||
42 | ixgbe_link_speed *speed, | ||
43 | bool *autoneg); | ||
44 | static s32 ixgbe_setup_copper_link_82598(struct ixgbe_hw *hw, | 41 | static s32 ixgbe_setup_copper_link_82598(struct ixgbe_hw *hw, |
45 | ixgbe_link_speed speed, | 42 | ixgbe_link_speed speed, |
46 | bool autoneg, | 43 | bool autoneg, |
@@ -156,7 +153,7 @@ static s32 ixgbe_init_phy_ops_82598(struct ixgbe_hw *hw) | |||
156 | if (mac->ops.get_media_type(hw) == ixgbe_media_type_copper) { | 153 | if (mac->ops.get_media_type(hw) == ixgbe_media_type_copper) { |
157 | mac->ops.setup_link = &ixgbe_setup_copper_link_82598; | 154 | mac->ops.setup_link = &ixgbe_setup_copper_link_82598; |
158 | mac->ops.get_link_capabilities = | 155 | mac->ops.get_link_capabilities = |
159 | &ixgbe_get_copper_link_capabilities_82598; | 156 | &ixgbe_get_copper_link_capabilities_generic; |
160 | } | 157 | } |
161 | 158 | ||
162 | switch (hw->phy.type) { | 159 | switch (hw->phy.type) { |
@@ -274,37 +271,6 @@ static s32 ixgbe_get_link_capabilities_82598(struct ixgbe_hw *hw, | |||
274 | } | 271 | } |
275 | 272 | ||
276 | /** | 273 | /** |
277 | * ixgbe_get_copper_link_capabilities_82598 - Determines link capabilities | ||
278 | * @hw: pointer to hardware structure | ||
279 | * @speed: pointer to link speed | ||
280 | * @autoneg: boolean auto-negotiation value | ||
281 | * | ||
282 | * Determines the link capabilities by reading the AUTOC register. | ||
283 | **/ | ||
284 | static s32 ixgbe_get_copper_link_capabilities_82598(struct ixgbe_hw *hw, | ||
285 | ixgbe_link_speed *speed, | ||
286 | bool *autoneg) | ||
287 | { | ||
288 | s32 status = IXGBE_ERR_LINK_SETUP; | ||
289 | u16 speed_ability; | ||
290 | |||
291 | *speed = 0; | ||
292 | *autoneg = true; | ||
293 | |||
294 | status = hw->phy.ops.read_reg(hw, MDIO_SPEED, MDIO_MMD_PMAPMD, | ||
295 | &speed_ability); | ||
296 | |||
297 | if (status == 0) { | ||
298 | if (speed_ability & MDIO_SPEED_10G) | ||
299 | *speed |= IXGBE_LINK_SPEED_10GB_FULL; | ||
300 | if (speed_ability & MDIO_PMA_SPEED_1000) | ||
301 | *speed |= IXGBE_LINK_SPEED_1GB_FULL; | ||
302 | } | ||
303 | |||
304 | return status; | ||
305 | } | ||
306 | |||
307 | /** | ||
308 | * ixgbe_get_media_type_82598 - Determines media type | 274 | * ixgbe_get_media_type_82598 - Determines media type |
309 | * @hw: pointer to hardware structure | 275 | * @hw: pointer to hardware structure |
310 | * | 276 | * |
@@ -1225,6 +1191,7 @@ static struct ixgbe_mac_operations mac_ops_82598 = { | |||
1225 | static struct ixgbe_eeprom_operations eeprom_ops_82598 = { | 1191 | static struct ixgbe_eeprom_operations eeprom_ops_82598 = { |
1226 | .init_params = &ixgbe_init_eeprom_params_generic, | 1192 | .init_params = &ixgbe_init_eeprom_params_generic, |
1227 | .read = &ixgbe_read_eerd_generic, | 1193 | .read = &ixgbe_read_eerd_generic, |
1194 | .calc_checksum = &ixgbe_calc_eeprom_checksum_generic, | ||
1228 | .validate_checksum = &ixgbe_validate_eeprom_checksum_generic, | 1195 | .validate_checksum = &ixgbe_validate_eeprom_checksum_generic, |
1229 | .update_checksum = &ixgbe_update_eeprom_checksum_generic, | 1196 | .update_checksum = &ixgbe_update_eeprom_checksum_generic, |
1230 | }; | 1197 | }; |