The EICR register's all OTHER interrupt bits are cleared in the beginning of
the ixgbe_msix_admin(), so it's not required to clear each bit later in the function.
This commit is contained in:
parent
260f8c16f9
commit
1528ff5e8a
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: ixgbe.c,v 1.266 2020/12/24 10:37:47 msaitoh Exp $ */
|
||||
/* $NetBSD: ixgbe.c,v 1.267 2020/12/24 15:51:04 msaitoh Exp $ */
|
||||
|
||||
/******************************************************************************
|
||||
|
||||
@ -3130,14 +3130,11 @@ ixgbe_msix_admin(void *arg)
|
||||
if ((eicr & eicr_mask)
|
||||
|| ((hw->phy.sfp_type == ixgbe_sfp_type_not_present)
|
||||
&& (eicr & IXGBE_EICR_LSC))) {
|
||||
IXGBE_WRITE_REG(hw, IXGBE_EICR, eicr_mask);
|
||||
task_requests |= IXGBE_REQUEST_TASK_MOD;
|
||||
}
|
||||
|
||||
if ((hw->mac.type == ixgbe_mac_82599EB) &&
|
||||
(eicr & IXGBE_EICR_GPI_SDP1_BY_MAC(hw))) {
|
||||
IXGBE_WRITE_REG(hw, IXGBE_EICR,
|
||||
IXGBE_EICR_GPI_SDP1_BY_MAC(hw));
|
||||
task_requests |= IXGBE_REQUEST_TASK_MSF;
|
||||
}
|
||||
}
|
||||
@ -3156,7 +3153,6 @@ ixgbe_msix_admin(void *arg)
|
||||
if (eicr & IXGBE_EICR_ECC) {
|
||||
device_printf(adapter->dev,
|
||||
"CRITICAL: ECC ERROR!! Please Reboot!!\n");
|
||||
IXGBE_WRITE_REG(hw, IXGBE_EICR, IXGBE_EICR_ECC);
|
||||
}
|
||||
|
||||
/* Check for over temp condition */
|
||||
@ -3167,8 +3163,6 @@ ixgbe_msix_admin(void *arg)
|
||||
break;
|
||||
IXGBE_WRITE_REG(hw, IXGBE_EIMC,
|
||||
IXGBE_EICR_GPI_SDP0_X550EM_a);
|
||||
IXGBE_WRITE_REG(hw, IXGBE_EICR,
|
||||
IXGBE_EICR_GPI_SDP0_X550EM_a);
|
||||
retval = hw->phy.ops.check_overtemp(hw);
|
||||
if (retval != IXGBE_ERR_OVERTEMP)
|
||||
break;
|
||||
@ -3183,7 +3177,6 @@ ixgbe_msix_admin(void *arg)
|
||||
break;
|
||||
device_printf(adapter->dev, "CRITICAL: OVER TEMP!! PHY IS SHUT DOWN!!\n");
|
||||
device_printf(adapter->dev, "System shutdown required!\n");
|
||||
IXGBE_WRITE_REG(hw, IXGBE_EICR, IXGBE_EICR_TS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -3198,13 +3191,11 @@ ixgbe_msix_admin(void *arg)
|
||||
/* Check for fan failure */
|
||||
if (adapter->feat_en & IXGBE_FEATURE_FAN_FAIL) {
|
||||
ixgbe_check_fan_failure(adapter, eicr, TRUE);
|
||||
IXGBE_WRITE_REG(hw, IXGBE_EICR, IXGBE_EICR_GPI_SDP1_BY_MAC(hw));
|
||||
}
|
||||
|
||||
/* External PHY interrupt */
|
||||
if ((hw->phy.type == ixgbe_phy_x550em_ext_t) &&
|
||||
(eicr & IXGBE_EICR_GPI_SDP0_X540)) {
|
||||
IXGBE_WRITE_REG(hw, IXGBE_EICR, IXGBE_EICR_GPI_SDP0_X540);
|
||||
task_requests |= IXGBE_REQUEST_TASK_PHY;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user