|
@@ -56,9 +56,6 @@ static s32 ixgbe_setup_mac_link_82599(struct ixgbe_hw *hw,
|
|
ixgbe_link_speed speed,
|
|
ixgbe_link_speed speed,
|
|
bool autoneg,
|
|
bool autoneg,
|
|
bool autoneg_wait_to_complete);
|
|
bool autoneg_wait_to_complete);
|
|
-static s32 ixgbe_get_copper_link_capabilities_82599(struct ixgbe_hw *hw,
|
|
|
|
- ixgbe_link_speed *speed,
|
|
|
|
- bool *autoneg);
|
|
|
|
static s32 ixgbe_setup_copper_link_82599(struct ixgbe_hw *hw,
|
|
static s32 ixgbe_setup_copper_link_82599(struct ixgbe_hw *hw,
|
|
ixgbe_link_speed speed,
|
|
ixgbe_link_speed speed,
|
|
bool autoneg,
|
|
bool autoneg,
|
|
@@ -174,7 +171,7 @@ static s32 ixgbe_init_phy_ops_82599(struct ixgbe_hw *hw)
|
|
if (mac->ops.get_media_type(hw) == ixgbe_media_type_copper) {
|
|
if (mac->ops.get_media_type(hw) == ixgbe_media_type_copper) {
|
|
mac->ops.setup_link = &ixgbe_setup_copper_link_82599;
|
|
mac->ops.setup_link = &ixgbe_setup_copper_link_82599;
|
|
mac->ops.get_link_capabilities =
|
|
mac->ops.get_link_capabilities =
|
|
- &ixgbe_get_copper_link_capabilities_82599;
|
|
|
|
|
|
+ &ixgbe_get_copper_link_capabilities_generic;
|
|
}
|
|
}
|
|
|
|
|
|
/* Set necessary function pointers based on phy type */
|
|
/* Set necessary function pointers based on phy type */
|
|
@@ -289,37 +286,6 @@ out:
|
|
return status;
|
|
return status;
|
|
}
|
|
}
|
|
|
|
|
|
-/**
|
|
|
|
- * ixgbe_get_copper_link_capabilities_82599 - Determines link capabilities
|
|
|
|
- * @hw: pointer to hardware structure
|
|
|
|
- * @speed: pointer to link speed
|
|
|
|
- * @autoneg: boolean auto-negotiation value
|
|
|
|
- *
|
|
|
|
- * Determines the link capabilities by reading the AUTOC register.
|
|
|
|
- **/
|
|
|
|
-static s32 ixgbe_get_copper_link_capabilities_82599(struct ixgbe_hw *hw,
|
|
|
|
- ixgbe_link_speed *speed,
|
|
|
|
- bool *autoneg)
|
|
|
|
-{
|
|
|
|
- s32 status = IXGBE_ERR_LINK_SETUP;
|
|
|
|
- u16 speed_ability;
|
|
|
|
-
|
|
|
|
- *speed = 0;
|
|
|
|
- *autoneg = true;
|
|
|
|
-
|
|
|
|
- status = hw->phy.ops.read_reg(hw, MDIO_SPEED, MDIO_MMD_PMAPMD,
|
|
|
|
- &speed_ability);
|
|
|
|
-
|
|
|
|
- if (status == 0) {
|
|
|
|
- if (speed_ability & MDIO_SPEED_10G)
|
|
|
|
- *speed |= IXGBE_LINK_SPEED_10GB_FULL;
|
|
|
|
- if (speed_ability & MDIO_PMA_SPEED_1000)
|
|
|
|
- *speed |= IXGBE_LINK_SPEED_1GB_FULL;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return status;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* ixgbe_get_media_type_82599 - Get media type
|
|
* ixgbe_get_media_type_82599 - Get media type
|
|
* @hw: pointer to hardware structure
|
|
* @hw: pointer to hardware structure
|
|
@@ -2125,51 +2091,6 @@ fw_version_out:
|
|
return status;
|
|
return status;
|
|
}
|
|
}
|
|
|
|
|
|
-/**
|
|
|
|
- * ixgbe_get_wwn_prefix_82599 - Get alternative WWNN/WWPN prefix from
|
|
|
|
- * the EEPROM
|
|
|
|
- * @hw: pointer to hardware structure
|
|
|
|
- * @wwnn_prefix: the alternative WWNN prefix
|
|
|
|
- * @wwpn_prefix: the alternative WWPN prefix
|
|
|
|
- *
|
|
|
|
- * This function will read the EEPROM from the alternative SAN MAC address
|
|
|
|
- * block to check the support for the alternative WWNN/WWPN prefix support.
|
|
|
|
- **/
|
|
|
|
-static s32 ixgbe_get_wwn_prefix_82599(struct ixgbe_hw *hw, u16 *wwnn_prefix,
|
|
|
|
- u16 *wwpn_prefix)
|
|
|
|
-{
|
|
|
|
- u16 offset, caps;
|
|
|
|
- u16 alt_san_mac_blk_offset;
|
|
|
|
-
|
|
|
|
- /* clear output first */
|
|
|
|
- *wwnn_prefix = 0xFFFF;
|
|
|
|
- *wwpn_prefix = 0xFFFF;
|
|
|
|
-
|
|
|
|
- /* check if alternative SAN MAC is supported */
|
|
|
|
- hw->eeprom.ops.read(hw, IXGBE_ALT_SAN_MAC_ADDR_BLK_PTR,
|
|
|
|
- &alt_san_mac_blk_offset);
|
|
|
|
-
|
|
|
|
- if ((alt_san_mac_blk_offset == 0) ||
|
|
|
|
- (alt_san_mac_blk_offset == 0xFFFF))
|
|
|
|
- goto wwn_prefix_out;
|
|
|
|
-
|
|
|
|
- /* check capability in alternative san mac address block */
|
|
|
|
- offset = alt_san_mac_blk_offset + IXGBE_ALT_SAN_MAC_ADDR_CAPS_OFFSET;
|
|
|
|
- hw->eeprom.ops.read(hw, offset, &caps);
|
|
|
|
- if (!(caps & IXGBE_ALT_SAN_MAC_ADDR_CAPS_ALTWWN))
|
|
|
|
- goto wwn_prefix_out;
|
|
|
|
-
|
|
|
|
- /* get the corresponding prefix for WWNN/WWPN */
|
|
|
|
- offset = alt_san_mac_blk_offset + IXGBE_ALT_SAN_MAC_ADDR_WWNN_OFFSET;
|
|
|
|
- hw->eeprom.ops.read(hw, offset, wwnn_prefix);
|
|
|
|
-
|
|
|
|
- offset = alt_san_mac_blk_offset + IXGBE_ALT_SAN_MAC_ADDR_WWPN_OFFSET;
|
|
|
|
- hw->eeprom.ops.read(hw, offset, wwpn_prefix);
|
|
|
|
-
|
|
|
|
-wwn_prefix_out:
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static struct ixgbe_mac_operations mac_ops_82599 = {
|
|
static struct ixgbe_mac_operations mac_ops_82599 = {
|
|
.init_hw = &ixgbe_init_hw_generic,
|
|
.init_hw = &ixgbe_init_hw_generic,
|
|
.reset_hw = &ixgbe_reset_hw_82599,
|
|
.reset_hw = &ixgbe_reset_hw_82599,
|
|
@@ -2181,7 +2102,7 @@ static struct ixgbe_mac_operations mac_ops_82599 = {
|
|
.get_mac_addr = &ixgbe_get_mac_addr_generic,
|
|
.get_mac_addr = &ixgbe_get_mac_addr_generic,
|
|
.get_san_mac_addr = &ixgbe_get_san_mac_addr_generic,
|
|
.get_san_mac_addr = &ixgbe_get_san_mac_addr_generic,
|
|
.get_device_caps = &ixgbe_get_device_caps_82599,
|
|
.get_device_caps = &ixgbe_get_device_caps_82599,
|
|
- .get_wwn_prefix = &ixgbe_get_wwn_prefix_82599,
|
|
|
|
|
|
+ .get_wwn_prefix = &ixgbe_get_wwn_prefix_generic,
|
|
.stop_adapter = &ixgbe_stop_adapter_generic,
|
|
.stop_adapter = &ixgbe_stop_adapter_generic,
|
|
.get_bus_info = &ixgbe_get_bus_info_generic,
|
|
.get_bus_info = &ixgbe_get_bus_info_generic,
|
|
.set_lan_id = &ixgbe_set_lan_id_multi_port_pcie,
|
|
.set_lan_id = &ixgbe_set_lan_id_multi_port_pcie,
|
|
@@ -2214,6 +2135,7 @@ static struct ixgbe_eeprom_operations eeprom_ops_82599 = {
|
|
.init_params = &ixgbe_init_eeprom_params_generic,
|
|
.init_params = &ixgbe_init_eeprom_params_generic,
|
|
.read = &ixgbe_read_eerd_generic,
|
|
.read = &ixgbe_read_eerd_generic,
|
|
.write = &ixgbe_write_eeprom_generic,
|
|
.write = &ixgbe_write_eeprom_generic,
|
|
|
|
+ .calc_checksum = &ixgbe_calc_eeprom_checksum_generic,
|
|
.validate_checksum = &ixgbe_validate_eeprom_checksum_generic,
|
|
.validate_checksum = &ixgbe_validate_eeprom_checksum_generic,
|
|
.update_checksum = &ixgbe_update_eeprom_checksum_generic,
|
|
.update_checksum = &ixgbe_update_eeprom_checksum_generic,
|
|
};
|
|
};
|
|
@@ -2240,5 +2162,5 @@ struct ixgbe_info ixgbe_82599_info = {
|
|
.mac_ops = &mac_ops_82599,
|
|
.mac_ops = &mac_ops_82599,
|
|
.eeprom_ops = &eeprom_ops_82599,
|
|
.eeprom_ops = &eeprom_ops_82599,
|
|
.phy_ops = &phy_ops_82599,
|
|
.phy_ops = &phy_ops_82599,
|
|
- .mbx_ops = &mbx_ops_82599,
|
|
|
|
|
|
+ .mbx_ops = &mbx_ops_generic,
|
|
};
|
|
};
|