Re: [PATCH net-next 03/18] net: mvpp2: set the SMI PHY address when connecting to the PHY

Antoine Tenart
2017-07-28T01:49:10Z

[-- Attachment #1: Type: text/plain, Size: 1409 bytes --]

Hi Andrew,

On Wed, Jul 26, 2017 at 06:08:06PM +0200, Andrew Lunn wrote:
> On Mon, Jul 24, 2017 at 03:48:33PM +0200, Antoine Tenart wrote:
> >
> > + if (priv->hw_version != MVPP22)
> > + return 0;
> > +
> > + /* Set the SMI PHY address */
> > + if (of_property_read_u32(port->phy_node, "reg", &phy_addr)) {
> > + netdev_err(port->dev, "cannot find the PHY address\n");
> > + return -EINVAL;
> > + }
> > +
> > + writel(phy_addr, priv->iface_base + MVPP22_SMI_PHY_ADDR(port->gop_id));
> > return 0;
> > }
>
> You could use phy_dev->mdiodev->addr, rather than parse the DT.

OK.

> Why does the MAC need to know this address? The phylib and PHY driver
> should be the only thing accessing the PHY, otherwise you are asking
> for trouble.

This is part of the SMI/xSMI interface. I added into the mvpp2 driver
and not in the mvmdio one because the GoP port number must be known to
set this register (so that would be even less clean to do it).

> What if the PHY is hanging off some other mdio bus? I've got a
> freescale board with dual ethernets and a Marvell switch on the
> hardware MDIO bus and a PHY on a bit-banging MDIO bus.

Then it wouldn't be controlled by the PPv2 SMI/xSMI interface, so we
wouldn't need to set the this register.

Thanks!
Antoine

--
Antoine Ténart, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]