mirror of https://gitee.com/openkylin/linux.git
ixgbe: Correct X550EM_x revision check
The X550EM_x revision check needs to check a value, not just a bit. Use a mask and check the value. Also remove the redundant check inside the ixgbe_enter_lplu_t_x550em, because it can only be called when both the mac type and revision check pass. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
e9ee3238f8
commit
3ca2b2506e
|
@ -3520,7 +3520,7 @@ struct ixgbe_info {
|
|||
|
||||
#define IXGBE_FUSES0_GROUP(_i) (0x11158 + ((_i) * 4))
|
||||
#define IXGBE_FUSES0_300MHZ BIT(5)
|
||||
#define IXGBE_FUSES0_REV1 BIT(6)
|
||||
#define IXGBE_FUSES0_REV_MASK (3 << 6)
|
||||
|
||||
#define IXGBE_KRM_PORT_CAR_GEN_CTRL(P) ((P) ? 0x8010 : 0x4010)
|
||||
#define IXGBE_KRM_LINK_CTRL_1(P) ((P) ? 0x820C : 0x420C)
|
||||
|
|
|
@ -1857,10 +1857,6 @@ static s32 ixgbe_enter_lplu_t_x550em(struct ixgbe_hw *hw)
|
|||
u32 save_autoneg;
|
||||
bool link_up;
|
||||
|
||||
/* SW LPLU not required on later HW revisions. */
|
||||
if (IXGBE_FUSES0_REV1 & IXGBE_READ_REG(hw, IXGBE_FUSES0_GROUP(0)))
|
||||
return 0;
|
||||
|
||||
/* If blocked by MNG FW, then don't restart AN */
|
||||
if (ixgbe_check_reset_blocked(hw))
|
||||
return 0;
|
||||
|
@ -2000,8 +1996,9 @@ static s32 ixgbe_init_phy_ops_X550em(struct ixgbe_hw *hw)
|
|||
ixgbe_setup_internal_phy_t_x550em;
|
||||
|
||||
/* setup SW LPLU only for first revision */
|
||||
if (!(IXGBE_FUSES0_REV1 & IXGBE_READ_REG(hw,
|
||||
IXGBE_FUSES0_GROUP(0))))
|
||||
if (hw->mac.type == ixgbe_mac_X550EM_x &&
|
||||
!(IXGBE_READ_REG(hw, IXGBE_FUSES0_GROUP(0)) &
|
||||
IXGBE_FUSES0_REV_MASK))
|
||||
phy->ops.enter_lplu = ixgbe_enter_lplu_t_x550em;
|
||||
|
||||
phy->ops.handle_lasi = ixgbe_handle_lasi_ext_t_x550em;
|
||||
|
|
Loading…
Reference in New Issue