e1000e: PHY cann't be initialized correctly on some I218 controllers

6 messages, 4 authors, 2016-08-10 · open the first message on its own page

e1000e: PHY cann't be initialized correctly on some I218 controllers

From: Denis Turischev <hidden>
Date: 2016-08-01 13:02:44

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 <redacted>

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

Re: [Intel-wired-lan] e1000e: PHY cann't be initialized correctly on some I218 controllers

From: Raanan Avargil <hidden>
Date: 2016-08-04 16:18:13


On 8/1/2016 15:28, Denis Turischev wrote:
quoted hunk
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 <redacted>

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) {
_______________________________________________
Intel-wired-lan mailing list
Intel-wired-lan@lists.osuosl.org
http://lists.osuosl.org/mailman/listinfo/intel-wired-lan
It is hard to determine what is exactly the problem here and what causes 
the -3 error, but this is not the place to perform hw reset and retry to 
init the phy.
---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

Re: [Intel-wired-lan] e1000e: PHY cann't be initialized correctly on some I218 controllers

From: Denis Turischev <hidden>
Date: 2016-08-07 08:56:15

Hi Raanan,

On 08/04/2016 07:18 PM, Raanan Avargil wrote:
It is hard to determine what is exactly the problem here and what causes the -3 error, but this is not the place to perform hw reset and retry to init the phy.
I agree that may be this is not the correct place for hw reset, can you advice about another solution?

It works, not only for me, for example it helps here:
http://www.linux.org.ru/forum/linux-hardware/10268216

Another fact that Windows drivers work fine with the same hw.

Denis

Re: [Intel-wired-lan] e1000e: PHY cann't be initialized correctly on some I218 controllers

From: Raanan Avargil <hidden>
Date: 2016-08-09 15:11:05


On 8/7/2016 11:56, Denis Turischev wrote:
Hi Raanan,

On 08/04/2016 07:18 PM, Raanan Avargil wrote:
quoted
It is hard to determine what is exactly the problem here and what causes the -3 error, but this is not the place to perform hw reset and retry to init the phy.
I agree that may be this is not the correct place for hw reset, can you advice about another solution?

It works, not only for me, for example it helps here:
http://www.linux.org.ru/forum/linux-hardware/10268216

Another fact that Windows drivers work fine with the same hw.

Denis
Hi Denis,

More suitable place to retry init the device would be in probe function.
However, we haven't seen initialization issues like this on i218.

Adding Aaron.

@Aaron - have you seen initialization errors on i218 devices?

Raanan
---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

RE: [Intel-wired-lan] e1000e: PHY cann't be initialized correctly on some I218 controllers

From: Brown, Aaron F <hidden>
Date: 2016-08-09 19:00:35

-----Original Message-----
From: Avargil, Raanan
Sent: Tuesday, August 9, 2016 8:11 AM
To: Denis Turischev <redacted>; intel-wired-
lan@lists.osuosl.org; Brown, Aaron F [off-list ref]; Kirsher,
Jeffrey T [off-list ref]
Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: Re: [Intel-wired-lan] e1000e: PHY cann't be initialized correctly on
some I218 controllers



On 8/7/2016 11:56, Denis Turischev wrote:
quoted
Hi Raanan,

On 08/04/2016 07:18 PM, Raanan Avargil wrote:
quoted
It is hard to determine what is exactly the problem here and what causes
the -3 error, but this is not the place to perform hw reset and retry to init the
phy.
quoted
I agree that may be this is not the correct place for hw reset, can you advice
about another solution?
quoted
It works, not only for me, for example it helps here:
http://www.linux.org.ru/forum/linux-hardware/10268216

Another fact that Windows drivers work fine with the same hw.

Denis
Hi Denis,

More suitable place to retry init the device would be in probe function.
However, we haven't seen initialization issues like this on i218.

Adding Aaron.

@Aaron - have you seen initialization errors on i218 devices?
I have not.  But I don't have many systems with i218 so all that means is my systems do not exhibit the problem.
Raanan

RE: [Intel-wired-lan] e1000e: PHY cann't be initialized correctly on some I218 controllers

From: Neftin, Sasha <hidden>
Date: 2016-08-10 18:27:02

Hello Denis,
In case this reset help you fix initialization error of I218 you can use it locally on your system. How many system with I218 encountered with initialization error on your side?

Thanks,
Sasha
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces@lists.osuosl.org] On Behalf Of Brown, Aaron F
Sent: Tuesday, August 09, 2016 9:59 PM
To: Avargil, Raanan <redacted>; Denis Turischev <redacted>; intel-wired-lan@lists.osuosl.org; Kirsher, Jeffrey T <redacted>
Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: Re: [Intel-wired-lan] e1000e: PHY cann't be initialized correctly on some I218 controllers


-----Original Message-----
From: Avargil, Raanan
Sent: Tuesday, August 9, 2016 8:11 AM
To: Denis Turischev <redacted>; intel-wired- 
lan@lists.osuosl.org; Brown, Aaron F [off-list ref]; 
Kirsher, Jeffrey T [off-list ref]
Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: Re: [Intel-wired-lan] e1000e: PHY cann't be initialized 
correctly on some I218 controllers



On 8/7/2016 11:56, Denis Turischev wrote:
quoted
Hi Raanan,

On 08/04/2016 07:18 PM, Raanan Avargil wrote:
quoted
It is hard to determine what is exactly the problem here and what 
causes
the -3 error, but this is not the place to perform hw reset and retry 
to init the phy.
quoted
I agree that may be this is not the correct place for hw reset, can 
you advice
about another solution?
quoted
It works, not only for me, for example it helps here:
http://www.linux.org.ru/forum/linux-hardware/10268216

Another fact that Windows drivers work fine with the same hw.

Denis
Hi Denis,

More suitable place to retry init the device would be in probe function.
However, we haven't seen initialization issues like this on i218.

Adding Aaron.

@Aaron - have you seen initialization errors on i218 devices?
I have not.  But I don't have many systems with i218 so all that means is my systems do not exhibit the problem.
Raanan
_______________________________________________
Intel-wired-lan mailing list
Intel-wired-lan@lists.osuosl.org
http://lists.osuosl.org/mailman/listinfo/intel-wired-lan
---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help