]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
igb: Fix lack of flush after register write and before delay
authorCarolyn Wyborny <carolyn.wyborny@intel.com>
Sat, 25 Jun 2011 13:18:12 +0000 (13:18 +0000)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Thu, 17 May 2012 15:21:36 +0000 (11:21 -0400)
commit 064b43304ed8ede8e13ff7b4338d09fd37bcffb1 upstream.

Register writes followed by a delay are required to have a flush
before the delay in order to commit the values to the register.  Without
the flush, the code following the delay may not function correctly.

Reported-by: Tong Ho <tong.ho@ericsson.com>
Reported-by: Guenter Roeck <guenter.roeck@ericsson.com>
Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
drivers/net/igb/e1000_82575.c

index 4a32bed77c719acab24f459e2a4f57b3600a777e..a6ea91d381249e65969f4b6edf06a0e991c09c4e 100644 (file)
@@ -1554,6 +1554,7 @@ static s32 igb_reset_hw_82580(struct e1000_hw *hw)
                ctrl |= E1000_CTRL_RST;
 
        wr32(E1000_CTRL, ctrl);
+       wrfl();
 
        /* Add delay to insure DEV_RST has time to complete */
        if (global_device_reset)