r8169: more broken register writes workaround
authorfrançois romieu <romieu@fr.zoreil.com>
Mon, 26 Apr 2010 11:42:58 +0000 (11:42 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 12 May 2010 21:57:12 +0000 (14:57 -0700)
commit 908ba2bfd22253f26fa910cd855e4ccffb1467d0 upstream.

78f1cd02457252e1ffbc6caa44a17424a45286b8 ("fix broken register writes")
does not work for Al Viro's r8169 (XID 18000000).

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/r8169.c

index f79886d0128bde8fa147c6d0acfdf45d33df12de..211b587195cc845ea89eefce9a044ccab4708081 100644 (file)
@@ -2832,8 +2832,13 @@ static void rtl_rar_set(struct rtl8169_private *tp, u8 *addr)
        spin_lock_irq(&tp->lock);
 
        RTL_W8(Cfg9346, Cfg9346_Unlock);
+
        RTL_W32(MAC4, high);
+       RTL_R32(MAC4);
+
        RTL_W32(MAC0, low);
+       RTL_R32(MAC0);
+
        RTL_W8(Cfg9346, Cfg9346_Lock);
 
        spin_unlock_irq(&tp->lock);