net: sparx5: populate supported_interfaces member

Populate the phy_interface_t bitmap for the Microchip Sparx5 driver
with interfaces modes supported by the MAC.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Russell King (Oracle) 2021-11-16 10:02:01 +00:00 committed by David S. Miller
parent d3a410001e
commit ae089a8191

View File

@ -293,6 +293,30 @@ static int sparx5_create_port(struct sparx5 *sparx5,
spx5_port->phylink_config.type = PHYLINK_NETDEV;
spx5_port->phylink_config.pcs_poll = true;
__set_bit(PHY_INTERFACE_MODE_SGMII,
spx5_port->phylink_config.supported_interfaces);
__set_bit(PHY_INTERFACE_MODE_QSGMII,
spx5_port->phylink_config.supported_interfaces);
__set_bit(PHY_INTERFACE_MODE_1000BASEX,
spx5_port->phylink_config.supported_interfaces);
__set_bit(PHY_INTERFACE_MODE_2500BASEX,
spx5_port->phylink_config.supported_interfaces);
if (spx5_port->conf.bandwidth == SPEED_5000 ||
spx5_port->conf.bandwidth == SPEED_10000 ||
spx5_port->conf.bandwidth == SPEED_25000)
__set_bit(PHY_INTERFACE_MODE_5GBASER,
spx5_port->phylink_config.supported_interfaces);
if (spx5_port->conf.bandwidth == SPEED_10000 ||
spx5_port->conf.bandwidth == SPEED_25000)
__set_bit(PHY_INTERFACE_MODE_10GBASER,
spx5_port->phylink_config.supported_interfaces);
if (spx5_port->conf.bandwidth == SPEED_25000)
__set_bit(PHY_INTERFACE_MODE_25GBASER,
spx5_port->phylink_config.supported_interfaces);
phylink = phylink_create(&spx5_port->phylink_config,
of_fwnode_handle(config->node),
config->conf.phy_mode,