>-----Original Message-----
>From: Koki Sanagi [mailto:[email protected]]
>Sent: Wednesday, November 23, 2011 7:18 PM
>To: [email protected]; Kirsher, Jeffrey T; Brandeburg, Jesse;
>Allan, Bruce W; Wyborny, Carolyn; Skidmore, Donald C; Rose, Gregory V;
>Waskiewicz Jr, Peter P; Duyck, Alexander H; Ronciak, John; e1000-
>[email protected]
>Cc: [email protected]
>Subject: [PATCH net-next] igb: reset PHY after recovering from PHY power
>down
>
>According to 82576_Datasheet.pdf, PHY setting is lost after PHY power
>down.
>So resetting PHY is needed when recovering from PHY power down to set a
>default
>setting to PHY register.
>
>Owing to this lack, NIC doesn't link up in some rare situation.
>The situation I encountered is following.
>
>
>1.Both ports connect to switch.
>+---------+           +--------+
>|         |-----------|        |
>| 82576NS |           | switch |
>|         |-----------|        |
>+---------+           +--------+
>
>2.Detach both cables from switch.
>+---------+           +--------+
>|         |-------    |        |
>| 82576NS |           | switch |
>|         |-------    |        |
>+---------+           +--------+
>
>3.Detach one cable from one port.
>+---------+           +--------+
>|         |-------    |        |
>| 82576NS |           | switch |
>|         |           |        |
>+---------+           +--------+
>
>4.Attach that cable to the other port.(It means connecting directly each
>port)
>+---------+           +--------+
>|         |-------+   |        |
>| 82576NS |       |   | switch |
>|         |-------+   |        |
>+---------+           +--------+
>
>As a result, NIC doesn't link up sometimes.
>
>Signed-off-by: Koki Sanagi <[email protected]>
>---
> drivers/net/ethernet/intel/igb/igb_main.c |    1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
>diff --git a/drivers/net/ethernet/intel/igb/igb_main.c
>b/drivers/net/ethernet/intel/igb/igb_main.c
>index bd9b30e..4d4f065 100644
>--- a/drivers/net/ethernet/intel/igb/igb_main.c
>+++ b/drivers/net/ethernet/intel/igb/igb_main.c
>@@ -2496,6 +2496,7 @@ static int igb_open(struct net_device *netdev)
>               goto err_setup_rx;
>
>       igb_power_up_link(adapter);
>+      igb_reset_phy(hw);
>
>       /* before we allocate an interrupt, we must be ready to handle it.
>        * Setting DEBUG_SHIRQ in the kernel makes it fire an interrupt

Hello,

This seems reasonable, however it would only cover cases where igb_open is 
being called.  It would be better to integrate the phy_reset call into 
igb_power_up_link, so that's the default. I can provide an alternate by end of 
the week.

Thanks,

Carolyn

Carolyn Wyborny
Linux Development
LAN Access Division
Intel Corporation



------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to