netdev/phy/icplus: Use mdiobus_write() and mdiobus_read() for proper locking.
authorDavid Daney <david.daney@cavium.com>
Fri, 30 Sep 2011 12:17:48 +0000 (12:17 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Sep 2011 22:54:08 +0000 (18:54 -0400)
Usually you have to take the bus lock.  Why not here too?

I saw this when working on something else.  Not even compile tested.

Signed-off-by: David Daney <david.daney@cavium.com>
Cc: Greg Dietsche <Gregory.Dietsche@cuw.edu>
Cc: "Uwe Kleine-Konig" <u.kleine-koenig@pengutronix.de>
Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/icplus.c

index 6e344e59caf7e9457b8f973b57aba05b33cc06d5..d66bd8d125991e7c389dd6c0bdbfbdc5190d374f 100644 (file)
@@ -49,36 +49,36 @@ static int ip175c_config_init(struct phy_device *phydev)
        if (full_reset_performed == 0) {
 
                /* master reset */
-               err = phydev->bus->write(phydev->bus, 30, 0, 0x175c);
+               err = mdiobus_write(phydev->bus, 30, 0, 0x175c);
                if (err < 0)
                        return err;
 
                /* ensure no bus delays overlap reset period */
-               err = phydev->bus->read(phydev->bus, 30, 0);
+               err = mdiobus_read(phydev->bus, 30, 0);
 
                /* data sheet specifies reset period is 2 msec */
                mdelay(2);
 
                /* enable IP175C mode */
-               err = phydev->bus->write(phydev->bus, 29, 31, 0x175c);
+               err = mdiobus_write(phydev->bus, 29, 31, 0x175c);
                if (err < 0)
                        return err;
 
                /* Set MII0 speed and duplex (in PHY mode) */
-               err = phydev->bus->write(phydev->bus, 29, 22, 0x420);
+               err = mdiobus_write(phydev->bus, 29, 22, 0x420);
                if (err < 0)
                        return err;
 
                /* reset switch ports */
                for (i = 0; i < 5; i++) {
-                       err = phydev->bus->write(phydev->bus, i,
-                                                MII_BMCR, BMCR_RESET);
+                       err = mdiobus_write(phydev->bus, i,
+                                           MII_BMCR, BMCR_RESET);
                        if (err < 0)
                                return err;
                }
 
                for (i = 0; i < 5; i++)
-                       err = phydev->bus->read(phydev->bus, i, MII_BMCR);
+                       err = mdiobus_read(phydev->bus, i, MII_BMCR);
 
                mdelay(2);