Skip to content

Commit

Permalink
ixgbe: Disallow SFP 1G modules in the SFP+ cages for 82598 and 82599
Browse files Browse the repository at this point in the history
82598 and 82599 do not support SFP 1G modules.  Instead of allowing the
driver to load, but never get link, rejecting the module and displaying
a useful message is more preferrable.  The framework for displaying the
failure message already exists, now we just need to detect and reject the
SFP modules.

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>
  • Loading branch information
Waskiewicz Jr, Peter P authored and David S. Miller committed Apr 27, 2009
1 parent 78b1f60 commit fa466e9
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
22 changes: 17 additions & 5 deletions drivers/net/ixgbe/ixgbe_phy.c
Original file line number Diff line number Diff line change
Expand Up @@ -673,11 +673,22 @@ s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw)
break;
}
}
if (hw->mac.type == ixgbe_mac_82598EB ||
(hw->phy.sfp_type != ixgbe_sfp_type_sr &&
hw->phy.sfp_type != ixgbe_sfp_type_lr &&
hw->phy.sfp_type != ixgbe_sfp_type_srlr_core0 &&
hw->phy.sfp_type != ixgbe_sfp_type_srlr_core1)) {

/* All DA cables are supported */
if (transmission_media & IXGBE_SFF_TWIN_AX_CAPABLE) {
status = 0;
goto out;
}

/* 1G SFP modules are not supported */
if (comp_codes_10g == 0) {
hw->phy.type = ixgbe_phy_sfp_unsupported;
status = IXGBE_ERR_SFP_NOT_SUPPORTED;
goto out;
}

/* Anything else 82598-based is supported */
if (hw->mac.type == ixgbe_mac_82598EB) {
status = 0;
goto out;
}
Expand All @@ -690,6 +701,7 @@ s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw)
status = 0;
} else {
hw_dbg(hw, "SFP+ module not supported\n");
hw->phy.type = ixgbe_phy_sfp_unsupported;
status = IXGBE_ERR_SFP_NOT_SUPPORTED;
}
} else {
Expand Down
1 change: 1 addition & 0 deletions drivers/net/ixgbe/ixgbe_type.h
Original file line number Diff line number Diff line change
Expand Up @@ -1904,6 +1904,7 @@ enum ixgbe_phy_type {
ixgbe_phy_sfp_ftl,
ixgbe_phy_sfp_unknown,
ixgbe_phy_sfp_intel,
ixgbe_phy_sfp_unsupported,
ixgbe_phy_generic
};

Expand Down

0 comments on commit fa466e9

Please sign in to comment.