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