diff options
-rw-r--r-- | drivers/net/ixgbe/ixgbe_phy.c | 22 | ||||
-rw-r--r-- | drivers/net/ixgbe/ixgbe_type.h | 1 |
2 files changed, 18 insertions, 5 deletions
diff --git a/drivers/net/ixgbe/ixgbe_phy.c b/drivers/net/ixgbe/ixgbe_phy.c index f3258ec901fe..2543c32ca84a 100644 --- a/drivers/net/ixgbe/ixgbe_phy.c +++ b/drivers/net/ixgbe/ixgbe_phy.c | |||
@@ -673,11 +673,22 @@ s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw) | |||
673 | break; | 673 | break; |
674 | } | 674 | } |
675 | } | 675 | } |
676 | if (hw->mac.type == ixgbe_mac_82598EB || | 676 | |
677 | (hw->phy.sfp_type != ixgbe_sfp_type_sr && | 677 | /* All DA cables are supported */ |
678 | hw->phy.sfp_type != ixgbe_sfp_type_lr && | 678 | if (transmission_media & IXGBE_SFF_TWIN_AX_CAPABLE) { |
679 | hw->phy.sfp_type != ixgbe_sfp_type_srlr_core0 && | 679 | status = 0; |
680 | hw->phy.sfp_type != ixgbe_sfp_type_srlr_core1)) { | 680 | goto out; |
681 | } | ||
682 | |||
683 | /* 1G SFP modules are not supported */ | ||
684 | if (comp_codes_10g == 0) { | ||
685 | hw->phy.type = ixgbe_phy_sfp_unsupported; | ||
686 | status = IXGBE_ERR_SFP_NOT_SUPPORTED; | ||
687 | goto out; | ||
688 | } | ||
689 | |||
690 | /* Anything else 82598-based is supported */ | ||
691 | if (hw->mac.type == ixgbe_mac_82598EB) { | ||
681 | status = 0; | 692 | status = 0; |
682 | goto out; | 693 | goto out; |
683 | } | 694 | } |
@@ -690,6 +701,7 @@ s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw) | |||
690 | status = 0; | 701 | status = 0; |
691 | } else { | 702 | } else { |
692 | hw_dbg(hw, "SFP+ module not supported\n"); | 703 | hw_dbg(hw, "SFP+ module not supported\n"); |
704 | hw->phy.type = ixgbe_phy_sfp_unsupported; | ||
693 | status = IXGBE_ERR_SFP_NOT_SUPPORTED; | 705 | status = IXGBE_ERR_SFP_NOT_SUPPORTED; |
694 | } | 706 | } |
695 | } else { | 707 | } else { |
diff --git a/drivers/net/ixgbe/ixgbe_type.h b/drivers/net/ixgbe/ixgbe_type.h index a3317d8fbf6a..375f0d4ad965 100644 --- a/drivers/net/ixgbe/ixgbe_type.h +++ b/drivers/net/ixgbe/ixgbe_type.h | |||
@@ -1904,6 +1904,7 @@ enum ixgbe_phy_type { | |||
1904 | ixgbe_phy_sfp_ftl, | 1904 | ixgbe_phy_sfp_ftl, |
1905 | ixgbe_phy_sfp_unknown, | 1905 | ixgbe_phy_sfp_unknown, |
1906 | ixgbe_phy_sfp_intel, | 1906 | ixgbe_phy_sfp_intel, |
1907 | ixgbe_phy_sfp_unsupported, | ||
1907 | ixgbe_phy_generic | 1908 | ixgbe_phy_generic |
1908 | }; | 1909 | }; |
1909 | 1910 | ||