[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