> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf
> Of Vitaly Lifshits
> Sent: Tuesday, August 19, 2025 2:43 PM
> To: [email protected]
> Cc: Wu, Ricky <[email protected]>; [email protected];
> [email protected]; Lifshits, Vitaly
> <[email protected]>
> Subject: [Intel-wired-lan] [PATCH iwl-next v1 1/1] e1000e: Introduce
> private flag to disable K1
> 
> The K1 state reduces power consumption on ICH family network
> controllers
> during idle periods, similarly to L1 state on PCI Express NICs.
> Therefore,
> it is recommended and enabled by default.
> However, on some systems it has been observed to have adverse side
> effects, such as packet loss. It has been established through debug
> that
> the problem may be due to firmware misconfiguration of specific
> systems,
> interoperability with certain link partners, or marginal electrical
> conditions of specific units.
> 
> These problems typically cannot be fixed in the field, and generic
> workarounds to resolve the side effects on all systems, while keeping
> K1
> enabled, were found infeasible.
> Therefore, add the option for users to globally disable K1 idle state
> on
> the adapter.
> 
> Link: https://lore.kernel.org/intel-wired-
> lan/camqyjg3lvqfgqmctxeapur_jq0oqh7ggdxruvtrx_6tth2m...@mail.gmail.com
> /
> Link: https://lore.kernel.org/intel-wired-
> lan/[email protected]/
> Link: https://lore.kernel.org/intel-wired-lan/Z_z9EjcKtwHCQcZR@mail-
> itl/
> 
> Signed-off-by: Vitaly Lifshits <[email protected]>
> ---
>  drivers/net/ethernet/intel/e1000e/e1000.h   |  1 +
>  drivers/net/ethernet/intel/e1000e/ethtool.c | 29 ++++++++++++++--
>  drivers/net/ethernet/intel/e1000e/hw.h      |  1 +
>  drivers/net/ethernet/intel/e1000e/ich8lan.c | 38 +++++++++++---------
> -
>  drivers/net/ethernet/intel/e1000e/ich8lan.h |  2 ++
>  drivers/net/ethernet/intel/e1000e/netdev.c  |  5 +++
>  6 files changed, 55 insertions(+), 21 deletions(-)
> 

...

> --- a/drivers/net/ethernet/intel/e1000e/netdev.c
> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
> @@ -5267,6 +5267,11 @@ static void e1000_watchdog_task(struct
> work_struct *work)
>                                                 &adapter->link_duplex);
>                       e1000_print_link_info(adapter);
> 
> +                     if (adapter->flags2 & FLAG2_DISABLE_K1) {
> +                             adapter->hw.dev_spec.ich8lan.disable_k1 =
> true;
> +                             e1000_reconfigure_k1_params(&adapter->hw);
> +                     }
> +
You changed the function header comment to require the PHY sem. 
Good - but. You already correctly hold the lock in other call sites (e.g., init 
paths).
Are you sure watchdog still consistent? 

>                       /* check if SmartSpeed worked */
>                       e1000e_check_downshift(hw);
>                       if (phy->speed_downgraded)
> --
> 2.34.1

Reply via email to