diff --cc net/dsa/port.c index c63cbfbe6489,2f6195d7b741..24015e11255f --- a/net/dsa/port.c +++ b/net/dsa/port.c @@@ -1686,8 -1720,22 +1686,15 @@@ int dsa_port_phylink_create(struct dsa_ if (err) mode = PHY_INTERFACE_MODE_NA; - if (ds->ops->phylink_get_caps) - /* Presence of phylink_mac_link_state or phylink_mac_an_restart is - * an indicator of a legacy phylink driver. - */ - if (ds->ops->phylink_mac_link_state || - ds->ops->phylink_mac_an_restart) - dp->pl_config.legacy_pre_march2020 = true; - + if (ds->ops->phylink_get_caps) { ds->ops->phylink_get_caps(ds, dp->index, &dp->pl_config); + } else { + /* For legacy drivers */ + __set_bit(PHY_INTERFACE_MODE_INTERNAL, + dp->pl_config.supported_interfaces); + __set_bit(PHY_INTERFACE_MODE_GMII, + dp->pl_config.supported_interfaces); + } pl = phylink_create(&dp->pl_config, of_fwnode_handle(dp->dn), mode, &dsa_port_phylink_mac_ops);