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 ------------------------------------------------------------------------------ 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® Ethernet, visit http://communities.intel.com/community/wired
