APPLIED: [SRU][N][PATCH 1/1] Revert "e1000e: change k1 configuration on MTP and later platforms"

Stefan Bader stefan.bader at canonical.com
Thu Aug 21 12:23:34 UTC 2025


On 06.08.25 17:10, En-Wei Wu wrote:
> BugLink: https://bugs.launchpad.net/bugs/2115393
> 
> This reverts commit 9bcaabfe4218c0f6e65ac4364b94ff7e1b418d04.
> 
> Signed-off-by: En-Wei Wu <en-wei.wu at canonical.com>
> ---
>   drivers/net/ethernet/intel/e1000e/defines.h |  3 -
>   drivers/net/ethernet/intel/e1000e/ich8lan.c | 80 ++-------------------
>   drivers/net/ethernet/intel/e1000e/ich8lan.h |  4 --
>   3 files changed, 5 insertions(+), 82 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/e1000e/defines.h b/drivers/net/ethernet/intel/e1000e/defines.h
> index 3ef6478751c7..23a58cada43a 100644
> --- a/drivers/net/ethernet/intel/e1000e/defines.h
> +++ b/drivers/net/ethernet/intel/e1000e/defines.h
> @@ -805,7 +805,4 @@
>   /* SerDes Control */
>   #define E1000_GEN_POLL_TIMEOUT          640
>   
> -#define E1000_FEXTNVM12_PHYPD_CTRL_MASK	0x00C00000
> -#define E1000_FEXTNVM12_PHYPD_CTRL_P1	0x00800000
> -
>   #endif /* _E1000_DEFINES_H_ */
> diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
> index 364378133526..2f9655cf5dd9 100644
> --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
> +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
> @@ -285,45 +285,6 @@ static void e1000_toggle_lanphypc_pch_lpt(struct e1000_hw *hw)
>   	}
>   }
>   
> -/**
> - * e1000_reconfigure_k1_exit_timeout - reconfigure K1 exit timeout to
> - * align to MTP and later platform requirements.
> - * @hw: pointer to the HW structure
> - *
> - * Context: PHY semaphore must be held by caller.
> - * Return: 0 on success, negative on failure
> - */
> -static s32 e1000_reconfigure_k1_exit_timeout(struct e1000_hw *hw)
> -{
> -	u16 phy_timeout;
> -	u32 fextnvm12;
> -	s32 ret_val;
> -
> -	if (hw->mac.type < e1000_pch_mtp)
> -		return 0;
> -
> -	/* Change Kumeran K1 power down state from P0s to P1 */
> -	fextnvm12 = er32(FEXTNVM12);
> -	fextnvm12 &= ~E1000_FEXTNVM12_PHYPD_CTRL_MASK;
> -	fextnvm12 |= E1000_FEXTNVM12_PHYPD_CTRL_P1;
> -	ew32(FEXTNVM12, fextnvm12);
> -
> -	/* Wait for the interface the settle */
> -	usleep_range(1000, 1100);
> -
> -	/* Change K1 exit timeout */
> -	ret_val = e1e_rphy_locked(hw, I217_PHY_TIMEOUTS_REG,
> -				  &phy_timeout);
> -	if (ret_val)
> -		return ret_val;
> -
> -	phy_timeout &= ~I217_PHY_TIMEOUTS_K1_EXIT_TO_MASK;
> -	phy_timeout |= 0xF00;
> -
> -	return e1e_wphy_locked(hw, I217_PHY_TIMEOUTS_REG,
> -				  phy_timeout);
> -}
> -
>   /**
>    *  e1000_init_phy_workarounds_pchlan - PHY initialization workarounds
>    *  @hw: pointer to the HW structure
> @@ -366,22 +327,15 @@ static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw)
>   	 * LANPHYPC Value bit to force the interconnect to PCIe mode.
>   	 */
>   	switch (hw->mac.type) {
> -	case e1000_pch_mtp:
> -	case e1000_pch_lnp:
> -	case e1000_pch_ptp:
> -	case e1000_pch_nvp:
> -		/* At this point the PHY might be inaccessible so don't
> -		 * propagate the failure
> -		 */
> -		if (e1000_reconfigure_k1_exit_timeout(hw))
> -			e_dbg("Failed to reconfigure K1 exit timeout\n");
> -
> -		fallthrough;
>   	case e1000_pch_lpt:
>   	case e1000_pch_spt:
>   	case e1000_pch_cnp:
>   	case e1000_pch_tgp:
>   	case e1000_pch_adp:
> +	case e1000_pch_mtp:
> +	case e1000_pch_lnp:
> +	case e1000_pch_ptp:
> +	case e1000_pch_nvp:
>   		if (e1000_phy_is_accessible_pchlan(hw))
>   			break;
>   
> @@ -465,20 +419,8 @@ static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw)
>   		 *  the PHY is in.
>   		 */
>   		ret_val = hw->phy.ops.check_reset_block(hw);
> -		if (ret_val) {
> +		if (ret_val)
>   			e_err("ME blocked access to PHY after reset\n");
> -			goto out;
> -		}
> -
> -		if (hw->mac.type >= e1000_pch_mtp) {
> -			ret_val = hw->phy.ops.acquire(hw);
> -			if (ret_val) {
> -				e_err("Failed to reconfigure K1 exit timeout\n");
> -				goto out;
> -			}
> -			ret_val = e1000_reconfigure_k1_exit_timeout(hw);
> -			hw->phy.ops.release(hw);
> -		}
>   	}
>   
>   out:
> @@ -4946,18 +4888,6 @@ static s32 e1000_init_hw_ich8lan(struct e1000_hw *hw)
>   	u16 i;
>   
>   	e1000_initialize_hw_bits_ich8lan(hw);
> -	if (hw->mac.type >= e1000_pch_mtp) {
> -		ret_val = hw->phy.ops.acquire(hw);
> -		if (ret_val)
> -			return ret_val;
> -
> -		ret_val = e1000_reconfigure_k1_exit_timeout(hw);
> -		hw->phy.ops.release(hw);
> -		if (ret_val) {
> -			e_dbg("Error failed to reconfigure K1 exit timeout\n");
> -			return ret_val;
> -		}
> -	}
>   
>   	/* Initialize identification LED */
>   	ret_val = mac->ops.id_led_init(hw);
> diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.h b/drivers/net/ethernet/intel/e1000e/ich8lan.h
> index 5feb589a9b5f..2504b11c3169 100644
> --- a/drivers/net/ethernet/intel/e1000e/ich8lan.h
> +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.h
> @@ -219,10 +219,6 @@
>   #define I217_PLL_CLOCK_GATE_REG	PHY_REG(772, 28)
>   #define I217_PLL_CLOCK_GATE_MASK	0x07FF
>   
> -/* PHY Timeouts */
> -#define I217_PHY_TIMEOUTS_REG                   PHY_REG(770, 21)
> -#define I217_PHY_TIMEOUTS_K1_EXIT_TO_MASK       0x0FC0
> -
>   #define SW_FLAG_TIMEOUT		1000	/* SW Semaphore flag timeout in ms */
>   
>   /* Inband Control */


Applied to noble:linux/master-next. I added a bit more context to the 
commit message while I did that. Thanks.

-Stefan


-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xE8675DEECBEECEA3.asc
Type: application/pgp-keys
Size: 48643 bytes
Desc: OpenPGP public key
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20250821/f1819e97/attachment-0001.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20250821/f1819e97/attachment-0001.sig>


More information about the kernel-team mailing list