ar71xx: flush mii register writes
[openwrt-10.03/.git] / target / linux / ar71xx / files / drivers / net / ag71xx / ag71xx_mdio.c
index 57212788950cff83587b50824fdc55c60ad70e3a..72f732d54fb2d79e9731ebed81bb93b69c570e04 100644 (file)
@@ -21,7 +21,13 @@ struct ag71xx_mdio *ag71xx_mdio_bus;
 static inline void ag71xx_mdio_wr(struct ag71xx_mdio *am, unsigned reg,
                                  u32 value)
 {
-       __raw_writel(value, am->mdio_base + reg);
+       void __iomem *r;
+
+       r = am->mdio_base + reg;
+       __raw_writel(value, r);
+
+       /* flush write */
+       (void) __raw_readl(r);
 }
 
 static inline u32 ag71xx_mdio_rr(struct ag71xx_mdio *am, unsigned reg)