ixgbe: Update get_physical_layer() calls, plus a version bump
Not all physical connection types are being correctly identified. This fixes that issue, and cleans up the logic to make it more maintainable. Also clean up the code for device capabilities from the EEPROM to support multiple SKUs of the same hardware. Bump the version to reflect all the updates since the 82599 merge. Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
1eb99d5ac4
commit
04193058c1
@@ -632,7 +632,7 @@ s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw)
|
||||
hw->phy.multispeed_fiber = true;
|
||||
|
||||
/* Determine PHY vendor */
|
||||
if (hw->phy.type == ixgbe_phy_unknown) {
|
||||
if (hw->phy.type != ixgbe_phy_nl) {
|
||||
hw->phy.id = identifier;
|
||||
hw->phy.ops.read_i2c_eeprom(hw,
|
||||
IXGBE_SFF_VENDOR_OUI_BYTE0,
|
||||
@@ -682,9 +682,9 @@ s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw)
|
||||
goto out;
|
||||
}
|
||||
|
||||
hw->eeprom.ops.read(hw, IXGBE_PHY_ENFORCE_INTEL_SFP_OFFSET,
|
||||
&enforce_sfp);
|
||||
if (!(enforce_sfp & IXGBE_PHY_ALLOW_ANY_SFP)) {
|
||||
/* This is guaranteed to be 82599, no need to check for NULL */
|
||||
hw->mac.ops.get_device_caps(hw, &enforce_sfp);
|
||||
if (!(enforce_sfp & IXGBE_DEVICE_CAPS_ALLOW_ANY_SFP)) {
|
||||
/* Make sure we're a supported PHY type */
|
||||
if (hw->phy.type == ixgbe_phy_sfp_intel) {
|
||||
status = 0;
|
||||
|
Reference in New Issue
Block a user