All of lore.kernel.org
 help / color / mirror / Atom feed
* e1000e: PHY cann't be initialized correctly on some I218 controllers
@ 2016-08-01 12:28 ` Denis Turischev
  0 siblings, 0 replies; 12+ messages in thread
From: Denis Turischev @ 2016-08-01 12:28 UTC (permalink / raw)
  To: Jeff Kirsher; +Cc: intel-wired-lan, netdev, linux-kernel

There is an error "e1000e: probe of 0000:00:19.0 failed with error -3"
that can be observed after power-on on some I218 controllers.
Hardware reset and re-initialization fixes the issue.

Signed-off-by: Denis Turischev <denis.turischev@compulab.co.il>

diff -Nru linux-4.7.orig/drivers/net/ethernet/intel/e1000e/ich8lan.c linux-4.7/drivers/net/ethernet/intel/e1000e/ich8lan.c
--- linux-4.7.orig/drivers/net/ethernet/intel/e1000e/ich8lan.c	2016-07-24 22:23:50.000000000 +0300
+++ linux-4.7/drivers/net/ethernet/intel/e1000e/ich8lan.c	2016-08-01 13:59:08.046563095 +0300
@@ -155,6 +155,7 @@
 static s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force);
 static s32 e1000_setup_copper_link_pch_lpt(struct e1000_hw *hw);
 static s32 e1000_oem_bits_config_ich8lan(struct e1000_hw *hw, bool d0_state);
+static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw);
 
 static inline u16 __er16flash(struct e1000_hw *hw, unsigned long reg)
 {
@@ -459,8 +460,12 @@
 	phy->id = e1000_phy_unknown;
 
 	ret_val = e1000_init_phy_workarounds_pchlan(hw);
-	if (ret_val)
-		return ret_val;
+	if (ret_val) {
+		e1000_reset_hw_ich8lan(hw);
+		ret_val = e1000_init_phy_workarounds_pchlan(hw);
+		if (ret_val)
+			return ret_val;
+	}
 
 	if (phy->id == e1000_phy_unknown)
 		switch (hw->mac.type) {

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-08-10 18:27 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-01 12:28 e1000e: PHY cann't be initialized correctly on some I218 controllers Denis Turischev
2016-08-01 12:28 ` [Intel-wired-lan] " Denis Turischev
2016-08-04 16:18 ` Raanan Avargil
2016-08-04 16:18   ` Raanan Avargil
2016-08-07  8:56   ` Denis Turischev
2016-08-07  8:56     ` Denis Turischev
2016-08-09 15:10     ` Raanan Avargil
2016-08-09 15:10       ` Raanan Avargil
2016-08-09 18:59       ` Brown, Aaron F
2016-08-09 18:59         ` Brown, Aaron F
2016-08-10 15:00         ` Neftin, Sasha
2016-08-10 15:00           ` Neftin, Sasha

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.