]> 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)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 29 Aug 2011 21:08:09 +0000 (14:08 -0700)
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: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/igb/e1000_82575.c

index 33352ffa9669cb33bc25b16542bb4589f4d526a4..d617f2d8969e0d47d108df5bbde2fd2ec0bc823f 100644 (file)
@@ -941,6 +941,7 @@ static s32 igb_setup_copper_link_82575(struct e1000_hw *hw)
        ctrl |= E1000_CTRL_SLU;
        ctrl &= ~(E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX);
        wr32(E1000_CTRL, ctrl);
+       wrfl();
 
        ret_val = igb_setup_serdes_link_82575(hw);
        if (ret_val)