> +static int dp83822_suspend(struct phy_device *phydev) > +{ > + int value; > + > + mutex_lock(&phydev->lock); > + value = phy_read_mmd(phydev, DP83822_DEVADDR, > MII_DP83822_WOL_CFG); > + mutex_unlock(&phydev->lock); Would we need mutex to access phy_read_mmd()? phy_read_mmd() has mdio_lock for indirect access.
> + if (!(value & DP83822_WOL_EN)) > + genphy_suspend(phydev); > + > + return 0; > +} > + > +static int dp83822_resume(struct phy_device *phydev) > +{ > + int value; > + > + genphy_resume(phydev); > + > + mutex_lock(&phydev->lock); > + value = phy_read_mmd(phydev, DP83822_DEVADDR, > MII_DP83822_WOL_CFG); > + > + phy_write_mmd(phydev, DP83822_DEVADDR, > MII_DP83822_WOL_CFG, value | > + DP83822_WOL_CLR_INDICATION); > + > + mutex_unlock(&phydev->lock); Same here. Woojung