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

En-Wei Wu en-wei.wu at canonical.com
Wed Aug 6 15:10:15 UTC 2025


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 */
-- 
2.43.0




More information about the kernel-team mailing list