> @@ -304,6 +312,18 @@ static int dsa_ds_apply(struct dsa_switch_tree *dst, > struct dsa_switch *ds) > if (err < 0) > return err; > > + if (!ds->slave_mii_bus && ds->drv->phy_read) { > + ds->slave_mii_bus = devm_mdiobus_alloc(ds->dev); > + if (!ds->slave_mii_bus) > + return err; > + > + dsa_slave_mii_bus_init(ds); > + > + err = mdiobus_register(ds->slave_mii_bus); > + if (err < 0) > + return err; > + } > + > for (index = 0; index < DSA_MAX_PORTS; index++) { > port = ds->ports[index].dn; > if (!port)
Hi Florian This hunk does not seem to fit in this patch. It is also missing the unregister in dsa_ds_unapply(). Andrew