Intel-Wired-Lan Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Brandt, Todd E" <todd.e.brandt@intel.com>
To: "Ruinskiy, Dima" <dima.ruinskiy@intel.com>,
	"intel-wired-lan@lists.osuosl.org"
	<intel-wired-lan@lists.osuosl.org>
Cc: "Keller, Jacob E" <jacob.e.keller@intel.com>,
	"Nguyen, Anthony L" <anthony.l.nguyen@intel.com>
Subject: Re: [Intel-wired-lan] [PATCH iwl-net v3] e1000e: Reconfigure PLL clock gate timeout and re-enable K1 on Meteor Lake
Date: Wed, 10 Jun 2026 18:22:45 +0000	[thread overview]
Message-ID: <afa13b8dfd880cd287651ca2e293e209dae968ab.camel@intel.com> (raw)
In-Reply-To: <20260417104330.3031987-1-dima.ruinskiy@intel.com>

On Fri, 2026-04-17 at 13:43 +0300, Dima Ruinskiy wrote:
> Commit 3c7bf5af21960 ("e1000e: Introduce private flag to disable K1")
> disabled K1 by default on Meteor Lake and newer systems due to packet
> loss observed on various platforms. However, disabling K1 caused an
> increase in power consumption.
> 
> To mitigate this, reconfigure the PLL clock gate value so that K1 can
> remain enabled without incurring the additional power consumption.
> Re-enable K1 by default, but keep the private flag to support
> disabling
> it via ethtool. Additionally, introduce a DMI quirk table, so that K1
> may
> be disabled by default on known problematic systems. Currently, this
> includes the Dell Pro 16 Plus, where the issue has been reported to
> persist
> despite the changes to the PLL lock timeout.
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=220954
> Link:
> https://lists.osuosl.org/pipermail/intel-wired-lan/Week-of-Mon-20250623/048860.html
> Link:
> https://lists.osuosl.org/pipermail/intel-wired-lan/Week-of-Mon-20260330/054059.html
> Signed-off-by: Dima Ruinskiy <dima.ruinskiy@intel.com>
> Co-developed-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
> Signed-off-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
> Fixes: 3c7bf5af21960 ("e1000e: Introduce private flag to disable K1")
> Tested-by: Moriya Kadosh <moriyax.kadosh@intel.com>
> ---
> v3: add DMI quirk
> v2: add comment for the PLL timeout value and revisit the commit
> message
> v1: initial version
> ---
>  drivers/net/ethernet/intel/e1000e/ich8lan.c |  3 +++
>  drivers/net/ethernet/intel/e1000e/netdev.c  | 15 ++++++++++++++-
>  2 files changed, 17 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c
> b/drivers/net/ethernet/intel/e1000e/ich8lan.c
> index dea208db1be5..aa90e0ce8aca 100644
> --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
> +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
> @@ -1594,6 +1594,9 @@ static s32
> e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw)
>                         phy_reg &= ~I217_PLL_CLOCK_GATE_MASK;
>                         if (speed == SPEED_100 || speed == SPEED_10)
>                                 phy_reg |= 0x3E8;
> +                       else if (hw->mac.type == e1000_pch_mtp ||
> +                                hw->mac.type == e1000_pch_ptp)
> +                               phy_reg |= 0x1D5;
>                         else
>                                 phy_reg |= 0xFA;
>                         e1e_wphy_locked(hw, I217_PLL_CLOCK_GATE_REG,
> phy_reg);
> diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c
> b/drivers/net/ethernet/intel/e1000e/netdev.c
> index 4d553c6edd98..a7605e453382 100644
> --- a/drivers/net/ethernet/intel/e1000e/netdev.c
> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
> @@ -25,6 +25,7 @@
>  #include <linux/pm_runtime.h>
>  #include <linux/prefetch.h>
>  #include <linux/suspend.h>
> +#include <linux/dmi.h>
>  
>  #include "e1000.h"
>  #define CREATE_TRACE_POINTS
> @@ -58,6 +59,17 @@ static const struct e1000_info *e1000_info_tbl[] =
> {
>         [board_pch_ptp]         = &e1000_pch_ptp_info,
>  };
>  
> +static const struct dmi_system_id disable_k1_list[] = {
> +       {
> +               .ident = "Dell Pro 16 Plus PB16250",
> +               .matches = {
> +                       DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> +                       DMI_MATCH(DMI_PRODUCT_NAME, "Dell Pro 16 Plus
> PB16250"),
> +               },
> +       },
> +       {}
> +};
> +
>  struct e1000_reg_info {
>         u32 ofs;
>         char *name;
> @@ -7748,7 +7760,8 @@ static int e1000_probe(struct pci_dev *pdev,
> const struct pci_device_id *ent)
>         /* init PTP hardware clock */
>         e1000e_ptp_init(adapter);
>  
> -       if (hw->mac.type >= e1000_pch_mtp)
> +       /* disable K1 by default on known problematic systems */
> +       if (hw->mac.type >= e1000_pch_mtp &&
> dmi_check_system(disable_k1_list))
>                 adapter->flags2 |= FLAG2_DISABLE_K1;
>  
>         /* reset the hardware with the new settings */

I ran this on two of our new machines and it worked well, thanks! I can
get PC10 in runtime idle now.

Tested-by: Todd Brandt <todd.e.brandt@linux.intel.com>


      parent reply	other threads:[~2026-06-11 15:59 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-17 10:43 [Intel-wired-lan] [PATCH iwl-net v3] e1000e: Reconfigure PLL clock gate timeout and re-enable K1 on Meteor Lake Dima Ruinskiy
2026-05-06  9:59 ` Thorsten Leemhuis
2026-05-06 20:13   ` Jacob Keller
2026-06-03 10:42     ` Thorsten Leemhuis
2026-06-03 17:20       ` Jacob Keller
2026-06-03 18:04         ` Tony Nguyen
2026-06-07 13:00 ` Kadosh, MoriyaX
2026-06-10 18:22 ` Brandt, Todd E [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=afa13b8dfd880cd287651ca2e293e209dae968ab.camel@intel.com \
    --to=todd.e.brandt@intel.com \
    --cc=anthony.l.nguyen@intel.com \
    --cc=dima.ruinskiy@intel.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=jacob.e.keller@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox