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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox