net: mdio: Use mb() to be compatible for both ARM and PowerPC
authorAlison Wang <b18965@freescale.com>
Fri, 5 Sep 2014 05:52:37 +0000 (13:52 +0800)
committerYork Sun <yorksun@freescale.com>
Mon, 8 Sep 2014 17:30:33 +0000 (10:30 -0700)
Use mb() instead of sync assembly instruction to be
compatible for both ARM and PowerPC.

Signed-off-by: Alison Wang <alison.wang@freescale.com>
drivers/net/fsl_mdio.c

index 8d09f5d1fe9b204757404afddfe38ed9076da9ba..d6b181b38604c4dd4133646baf07d641200f7551 100644 (file)
@@ -19,7 +19,8 @@ void tsec_local_mdio_write(struct tsec_mii_mng __iomem *phyregs, int port_addr,
 
        out_be32(&phyregs->miimadd, (port_addr << 8) | (regnum & 0x1f));
        out_be32(&phyregs->miimcon, value);
-       asm("sync");
+       /* Memory barrier */
+       mb();
 
        while ((in_be32(&phyregs->miimind) & MIIMIND_BUSY) && timeout--)
                ;
@@ -37,11 +38,13 @@ int tsec_local_mdio_read(struct tsec_mii_mng __iomem *phyregs, int port_addr,
 
        /* Clear the command register, and wait */
        out_be32(&phyregs->miimcom, 0);
-       asm("sync");
+       /* Memory barrier */
+       mb();
 
        /* Initiate a read command, and wait */
        out_be32(&phyregs->miimcom, MIIMCOM_READ_CYCLE);
-       asm("sync");
+       /* Memory barrier */
+       mb();
 
        /* Wait for the the indication that the read is done */
        while ((in_be32(&phyregs->miimind) & (MIIMIND_NOTVALID | MIIMIND_BUSY))