Message ID | 20220405150305.151573-1-i.bornyakov@metrotek.ru (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: phy: marvell-88x2222: set proper phydev->port | expand |
On Tue, Apr 05, 2022 at 06:14:11PM +0200, Andrew Lunn wrote: > On Tue, Apr 05, 2022 at 06:03:05PM +0300, Ivan Bornyakov wrote: > > phydev->port was not set and always reported as PORT_TP. > > Set phydev->port according to inserted SFP module. > > This is definitely something for Russell to review. > > But i'm wondering if this is the correct place to do this? What about > at803x and marvell10g? I guess them need this too, but I only have HW with Marvell 88X2222. > It seems like this should be done once in the > core somewhere, not in each driver. > > Andrew Apart from sfp_parse_port(), sfp_parse_support() and sfp_select_interface() are also present in all sfp_upstream_ops->module_insert PHY callbacks.
diff --git a/drivers/net/phy/marvell-88x2222.c b/drivers/net/phy/marvell-88x2222.c index ec4f1407a78c..9f971b37ec35 100644 --- a/drivers/net/phy/marvell-88x2222.c +++ b/drivers/net/phy/marvell-88x2222.c @@ -603,6 +603,7 @@ static int mv2222_sfp_insert(void *upstream, const struct sfp_eeprom_id *id) dev = &phydev->mdio.dev; sfp_parse_support(phydev->sfp_bus, id, sfp_supported); + phydev->port = sfp_parse_port(phydev->sfp_bus, id, sfp_supported); sfp_interface = sfp_select_interface(phydev->sfp_bus, sfp_supported); dev_info(dev, "%s SFP module inserted\n", phy_modes(sfp_interface)); @@ -639,6 +640,7 @@ static void mv2222_sfp_remove(void *upstream) priv->line_interface = PHY_INTERFACE_MODE_NA; linkmode_zero(priv->supported); + phydev->port = PORT_OTHER; } static void mv2222_sfp_link_up(void *upstream)
phydev->port was not set and always reported as PORT_TP. Set phydev->port according to inserted SFP module. Signed-off-by: Ivan Bornyakov <i.bornyakov@metrotek.ru> --- drivers/net/phy/marvell-88x2222.c | 2 ++ 1 file changed, 2 insertions(+)