Hi This seems to retrigger the malfunction on a Dell Pro 16 Plus PB16250 laptop.
CPU Interl Core Ultra 5 235U CPU family 6 model 181 stepping 0 Please advise if you can reproduce or suggest alternative fix? Thanks, Timo On Mon, 2 Feb 2026 12:32:57 +0200 Vitaly Lifshits <[email protected]> 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 due to blocking PC10 state. > > To mitigate this, reconfigure the PLL clock gate value so that K1 can > remain enabled without incurring the additional power consumption. > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=220954 > Fixes: 3c7bf5af21960 ("e1000e: Introduce private flag to disable K1") > Signed-off-by: Vitaly Lifshits <[email protected]> > --- > v2: add comment for the PLL timeout value and revisit the commit message > v1: initial version > --- > drivers/net/ethernet/intel/e1000e/ich8lan.c | 6 ++++++ > drivers/net/ethernet/intel/e1000e/netdev.c | 3 --- > 2 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c > b/drivers/net/ethernet/intel/e1000e/ich8lan.c > index 13841daba399..8e88aa9048da 100644 > --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c > +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c > @@ -1594,6 +1594,12 @@ 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) > + /* Increase PLL clock gate timeout to avoid > + * packet loss > + */ > + 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 82d1d5fe51d5..8f0eb822610b 100644 > --- a/drivers/net/ethernet/intel/e1000e/netdev.c > +++ b/drivers/net/ethernet/intel/e1000e/netdev.c > @@ -7755,9 +7755,6 @@ 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) > - adapter->flags2 |= FLAG2_DISABLE_K1; > - > /* reset the hardware with the new settings */ > e1000e_reset(adapter); >
