From: Nir Efrati <nir.efr...@intel.com> Add some definitions related to ULP WoL, and set longer ULP exit timeout on more MAC types.
Signed-off-by: Nir Efrati <nir.efr...@intel.com> Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com> --- drivers/net/intel/e1000/base/e1000_hw.h | 1 + drivers/net/intel/e1000/base/e1000_ich8lan.c | 2 +- drivers/net/intel/e1000/base/e1000_ich8lan.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/intel/e1000/base/e1000_hw.h b/drivers/net/intel/e1000/base/e1000_hw.h index 1b8292191a..0ab21ed669 100644 --- a/drivers/net/intel/e1000/base/e1000_hw.h +++ b/drivers/net/intel/e1000/base/e1000_hw.h @@ -1021,6 +1021,7 @@ struct e1000_dev_spec_ich8lan { u16 eee_lp_ability; enum e1000_ulp_state ulp_state; bool ulp_capability_disabled; + bool wake_on_ulp_exit; bool during_suspend_flow; bool during_dpg_exit; u16 lat_enc; diff --git a/drivers/net/intel/e1000/base/e1000_ich8lan.c b/drivers/net/intel/e1000/base/e1000_ich8lan.c index 57c724523c..0bb67ca621 100644 --- a/drivers/net/intel/e1000/base/e1000_ich8lan.c +++ b/drivers/net/intel/e1000/base/e1000_ich8lan.c @@ -1293,7 +1293,7 @@ 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) + if (hw->mac.type >= e1000_pch_cnp) ulp_exit_timeout = 100; while (E1000_READ_REG(hw, E1000_FWSM) & diff --git a/drivers/net/intel/e1000/base/e1000_ich8lan.h b/drivers/net/intel/e1000/base/e1000_ich8lan.h index 4780417bae..fbe118723c 100644 --- a/drivers/net/intel/e1000/base/e1000_ich8lan.h +++ b/drivers/net/intel/e1000/base/e1000_ich8lan.h @@ -48,6 +48,7 @@ #define E1000_H2ME 0x05B50 /* Host to ME */ #define E1000_H2ME_ULP 0x00000800 /* ULP Indication Bit */ +#define E1000_H2ME_HOST_WOL_ON_ULP_EXIT 0x00000008 /* Host WOL on ULP exit */ #define E1000_H2ME_ENFORCE_SETTINGS 0x00001000 /* Enforce Settings */ #define ID_LED_DEFAULT_ICH8LAN ((ID_LED_DEF1_DEF2 << 12) | \ -- 2.43.5