Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 74f31299 authored by Raanan Avargil's avatar Raanan Avargil Committed by Jeff Kirsher
Browse files

e1000e: Increase PHY PLL clock gate timing



Several packet loss issues were reported for which the root cause for
them was an incorrect configuration of internal HW PHY clock gating
mechanism by SW.
This patch provides the correct mechanism.

Signed-off-by: default avatarRaanan Avargil <raanan.avargil@intel.com>
Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 6721e9d5
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -1433,6 +1433,18 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw)
			emi_addr = I217_RX_CONFIG;
		ret_val = e1000_write_emi_reg_locked(hw, emi_addr, emi_val);

		if (hw->mac.type == e1000_pch_lpt ||
		    hw->mac.type == e1000_pch_spt) {
			u16 phy_reg;

			e1e_rphy_locked(hw, I217_PLL_CLOCK_GATE_REG, &phy_reg);
			phy_reg &= ~I217_PLL_CLOCK_GATE_MASK;
			if (speed == SPEED_100 || speed == SPEED_10)
				phy_reg |= 0x3E8;
			else
				phy_reg |= 0xFA;
			e1e_wphy_locked(hw, I217_PLL_CLOCK_GATE_REG, phy_reg);
		}
		hw->phy.ops.release(hw);

		if (ret_val)
+3 −0
Original line number Diff line number Diff line
@@ -226,6 +226,9 @@
#define HV_PM_CTRL_PLL_STOP_IN_K1_GIGA	0x100
#define HV_PM_CTRL_K1_ENABLE		0x4000

#define I217_PLL_CLOCK_GATE_REG	PHY_REG(772, 28)
#define I217_PLL_CLOCK_GATE_MASK	0x07FF

#define SW_FLAG_TIMEOUT		1000	/* SW Semaphore flag timeout in ms */

/* Inband Control */