|
|
@@ -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)
|