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