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>
prev 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.