Re: [RFC PATCH net-next v3 20/20] net: phy: add qca8k driver for qca8k switch internal PHY

From: Andrew Lunn
Date: Wed May 05 2021 - 08:06:54 EST


On Wed, May 05, 2021 at 03:17:20AM +0200, Ansuel Smith wrote:
> On Wed, May 05, 2021 at 03:11:36AM +0200, Andrew Lunn wrote:
> > > +/* QCA specific MII registers access function */
> > > +static void qca8k_phy_dbg_write(struct mii_bus *bus, int phy_addr, u16 dbg_addr, u16 dbg_data)
> > > +{
> > > + mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
> > > + bus->write(bus, phy_addr, MII_ATH_DBG_ADDR, dbg_addr);
> > > + bus->write(bus, phy_addr, MII_ATH_DBG_DATA, dbg_data);
> > > + mutex_unlock(&bus->mdio_lock);
> > > +}
> >
> > What are you locking against here?
> >
> > Andrew
>
> Added the locking if in the future it will be used outside the
> config_init function but since it's used only there, yes, I can drop the
> useless lock.

The PHY core will take the phydev->lock whenever it calls the PHY
driver functions. The only exception to this is suspend/resume. So
long as you only access the devices own addresses on the MDIO bus, you
don't need any additional locks.

Andrew