-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