[patch 07/14] e1000: workaround for the ESB2 NIC RX unit issue
From: Arjan van de Ven <hidden>
Date: 2006-12-15 10:00:56
Subject: e1000: workaround for the ESB2 NIC RX unit issue From: Jesse Brandeburg <redacted> In rare occasions, ESB2 systems would end up started without the RX unit being turned on. Add a check that runs post-init to work around this issue. Signed-off-by: Jesse Brandeburg <redacted> Signed-off-by: Auke Kok <redacted> Signed-off-by: Arjan van de Ven <redacted> --- drivers/net/e1000/e1000_main.c | 7 +++++++ 1 file changed, 7 insertions(+) Index: linux-2.6/drivers/net/e1000/e1000_main.c ===================================================================
--- linux-2.6.orig/drivers/net/e1000/e1000_main.c
+++ linux-2.6/drivers/net/e1000/e1000_main.c@@ -2579,6 +2579,13 @@ e1000_watchdog(unsigned long data) netif_wake_queue(netdev); mod_timer(&adapter->phy_info_timer, jiffies + 2 * HZ); adapter->smartspeed = 0; + } else { + /* make sure the receive unit is started */ + if (adapter->hw.mac_type == e1000_80003es2lan) { + struct e1000_hw *hw = &adapter->hw; + uint32_t rctl = E1000_READ_REG(hw, RCTL); + E1000_WRITE_REG(hw, RCTL, rctl | E1000_RCTL_EN); + } } } else { if (netif_carrier_ok(netdev)) {