diff options
| author | Kevin Bowling <kbowling@FreeBSD.org> | 2026-08-11 16:19:02 +0000 |
|---|---|---|
| committer | Kevin Bowling <kbowling@FreeBSD.org> | 2026-08-11 20:45:56 +0000 |
| commit | e49cb7f757f6db8976b0d247e6a897eab5867634 (patch) | |
| tree | ff5523d71400529d6e09b365d8f37df5bb156ccb | |
| parent | 6058dfa40238e2cd6ac6f2377986fdff99d14686 (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.c | 5 |
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) { |
