ixgbe: Remove unnecessary PHY reset, properly identify multispeed fiber modules
This patch does two things: 1) On 82599, the PHY is emedded in the MAC. On 82598, the SFP+ NIC has an external PHY. The reset in the SFP+ setup patch for 82598 is unnecessary on 82599, and adds extra dead time to device initialization. This removes that PHY reset for 82599 only. 2) On 82599, the SFP+ modules are multispeed fiber modules (10G/1G). We need to make sure to identify them properly for the remaining init sections to properly set them up. 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
04f165ef4f
commit
553b449784
@@ -552,6 +552,7 @@ s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw)
|
||||
{
|
||||
s32 status = IXGBE_ERR_PHY_ADDR_INVALID;
|
||||
u32 vendor_oui = 0;
|
||||
enum ixgbe_sfp_type stored_sfp_type = hw->phy.sfp_type;
|
||||
u8 identifier = 0;
|
||||
u8 comp_codes_1g = 0;
|
||||
u8 comp_codes_10g = 0;
|
||||
@@ -620,6 +621,16 @@ s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw)
|
||||
hw->phy.sfp_type = ixgbe_sfp_type_unknown;
|
||||
}
|
||||
|
||||
if (hw->phy.sfp_type != stored_sfp_type)
|
||||
hw->phy.sfp_setup_needed = true;
|
||||
|
||||
/* Determine if the SFP+ PHY is dual speed or not. */
|
||||
if (((comp_codes_1g & IXGBE_SFF_1GBASESX_CAPABLE) &&
|
||||
(comp_codes_10g & IXGBE_SFF_10GBASESR_CAPABLE)) ||
|
||||
((comp_codes_1g & IXGBE_SFF_1GBASELX_CAPABLE) &&
|
||||
(comp_codes_10g & IXGBE_SFF_10GBASELR_CAPABLE)))
|
||||
hw->phy.multispeed_fiber = true;
|
||||
|
||||
/* Determine PHY vendor */
|
||||
if (hw->phy.type == ixgbe_phy_unknown) {
|
||||
hw->phy.id = identifier;
|
||||
|
Reference in New Issue
Block a user