aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Bowling <kbowling@FreeBSD.org>2026-08-11 16:19:02 +0000
committerKevin Bowling <kbowling@FreeBSD.org>2026-08-11 20:45:56 +0000
commite49cb7f757f6db8976b0d247e6a897eab5867634 (patch)
treeff5523d71400529d6e09b365d8f37df5bb156ccb
parent6058dfa40238e2cd6ac6f2377986fdff99d14686 (diff)
e1000: Allow more time for PCH ULP exit
Firmware may take up to one second to unconfigure ULP, and affected Lenovo systems have required nearly two seconds. Allow 2.5 seconds before treating the transition as a PHY failure. This extends DPDK commit 7aa4c34581a5 using the field-tested bound from Linux commit 3cf31b1a9eff. MFC after: 2 weeks
-rw-r--r--sys/dev/e1000/e1000_ich8lan.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/sys/dev/e1000/e1000_ich8lan.c b/sys/dev/e1000/e1000_ich8lan.c
index e7ff5a581ad1..1a3433217682 100644
--- a/sys/dev/e1000/e1000_ich8lan.c
+++ b/sys/dev/e1000/e1000_ich8lan.c
@@ -1504,7 +1504,7 @@ out:
s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force)
{
s32 ret_val = E1000_SUCCESS;
- u8 ulp_exit_timeout = 30;
+ u16 ulp_exit_timeout = 250;
u32 mac_reg;
u32 phy_retries;
u16 phy_reg;
@@ -1527,9 +1527,6 @@ s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force)
E1000_WRITE_REG(hw, E1000_H2ME, mac_reg);
}
- if (hw->mac.type == e1000_pch_cnp)
- ulp_exit_timeout = 100;
-
while (E1000_READ_REG(hw, E1000_FWSM) &
E1000_FWSM_ULP_CFG_DONE) {
if (i++ == ulp_exit_timeout) {