Subject: Re: [PATCH net-next 7/7] net: dsa: bcm_sf2: Register our slave MDIO bus

From: Andrew Lunn <[email-masked]>
Date: Sat, 4 Jun 2016 22:49:37 +0200

> -static int bcm_sf2_sw_phy_read(struct dsa_switch *ds, int addr, int regnum)
> +static int bcm_sf2_sw_phy_read(struct mii_bus *bus, int addr, int regnum)

Hi Florian

When i did the same for mv88e6xxx, i renamed _phy_ to _mdio_. That
keeps with the general pattern for other mdio drivers, making it clear
there can be something else than a phy on the bus.

> +	priv->slave_mii_bus->priv = priv;
> +	priv->slave_mii_bus->name = "sf2 slave mii";

> +	if (dn)
> +		snprintf(priv->slave_mii_bus->id, MII_BUS_ID_SIZE, "%s",
> +			 ds->dev->of_node->full_name);

I tried lots of different things with mv88e6xxx, including i think
this. The problem is full_name can be quite long, so it gets
truncated. And i often found two different mv88e6xxx ended up with
identical truncated names, since the unique part was getting
discarded.

> +	else
> +		snprintf(priv->slave_mii_bus->id, MII_BUS_ID_SIZE, "sf2-%d",
> +			 index++);

So i ended up with this, which is 100% reliable. 

   Andrew