> -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

Reply via email to