Message ID | 20240402055848.177580-6-ericwouds@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | rtl8226b/8221b add C45 instances and SerDes switching | expand |
On Tue, Apr 02, 2024 at 07:58:47AM +0200, Eric Woudstra wrote: > Sets ETHTOOL_LINK_MODE_TP_BIT and ETHTOOL_LINK_MODE_MII_BIT in > phydev->supported. Why ETHTOOL_LINK_MODE_MII_BIT? None of those phys got MII as external interface. Or am I getting something wrong here? > > Signed-off-by: Eric Woudstra <ericwouds@gmail.com> > --- > drivers/net/phy/realtek.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c > index af5e77fd6576..b483aa3800e2 100644 > --- a/drivers/net/phy/realtek.c > +++ b/drivers/net/phy/realtek.c > @@ -844,6 +844,16 @@ static int rtl822xb_read_status(struct phy_device *phydev) > return 0; > } > > +static int rtl822x_c45_get_features(struct phy_device *phydev) > +{ > + linkmode_set_bit(ETHTOOL_LINK_MODE_TP_BIT, > + phydev->supported); > + linkmode_set_bit(ETHTOOL_LINK_MODE_MII_BIT, > + phydev->supported); > + > + return genphy_c45_pma_read_abilities(phydev); > +} > + > static int rtl822x_c45_config_aneg(struct phy_device *phydev) > { > bool changed = false; > @@ -1273,6 +1283,7 @@ static struct phy_driver realtek_drvs[] = { > .name = "RTL8221B-VB-CG 2.5Gbps PHY (C45)", > .config_init = rtl822xb_config_init, > .get_rate_matching = rtl822xb_get_rate_matching, > + .get_features = rtl822x_c45_get_features, > .config_aneg = rtl822x_c45_config_aneg, > .read_status = rtl822xb_c45_read_status, > .suspend = genphy_c45_pma_suspend, > @@ -1294,6 +1305,7 @@ static struct phy_driver realtek_drvs[] = { > .name = "RTL8221B-VN-CG 2.5Gbps PHY (C45)", > .config_init = rtl822xb_config_init, > .get_rate_matching = rtl822xb_get_rate_matching, > + .get_features = rtl822x_c45_get_features, > .config_aneg = rtl822x_c45_config_aneg, > .read_status = rtl822xb_c45_read_status, > .suspend = genphy_c45_pma_suspend, > -- > 2.42.1 >
On 4/2/24 17:41, Daniel Golle wrote: > On Tue, Apr 02, 2024 at 07:58:47AM +0200, Eric Woudstra wrote: >> Sets ETHTOOL_LINK_MODE_TP_BIT and ETHTOOL_LINK_MODE_MII_BIT in >> phydev->supported. > > Why ETHTOOL_LINK_MODE_MII_BIT? None of those phys got MII as external > interface. Or am I getting something wrong here? > I have copied it from my rtl8153: # ethtool enu1u1 Settings for enu1u1: Supported ports: [ TP MII ] But I see on rtl8125 it is indeed only TP, so it looks like I chose the wrong example. I'll remove MII then if, this should not be there. The thing is, if no ports are set here, then from ethtool it looks like all ports are supported.
diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c index af5e77fd6576..b483aa3800e2 100644 --- a/drivers/net/phy/realtek.c +++ b/drivers/net/phy/realtek.c @@ -844,6 +844,16 @@ static int rtl822xb_read_status(struct phy_device *phydev) return 0; } +static int rtl822x_c45_get_features(struct phy_device *phydev) +{ + linkmode_set_bit(ETHTOOL_LINK_MODE_TP_BIT, + phydev->supported); + linkmode_set_bit(ETHTOOL_LINK_MODE_MII_BIT, + phydev->supported); + + return genphy_c45_pma_read_abilities(phydev); +} + static int rtl822x_c45_config_aneg(struct phy_device *phydev) { bool changed = false; @@ -1273,6 +1283,7 @@ static struct phy_driver realtek_drvs[] = { .name = "RTL8221B-VB-CG 2.5Gbps PHY (C45)", .config_init = rtl822xb_config_init, .get_rate_matching = rtl822xb_get_rate_matching, + .get_features = rtl822x_c45_get_features, .config_aneg = rtl822x_c45_config_aneg, .read_status = rtl822xb_c45_read_status, .suspend = genphy_c45_pma_suspend, @@ -1294,6 +1305,7 @@ static struct phy_driver realtek_drvs[] = { .name = "RTL8221B-VN-CG 2.5Gbps PHY (C45)", .config_init = rtl822xb_config_init, .get_rate_matching = rtl822xb_get_rate_matching, + .get_features = rtl822x_c45_get_features, .config_aneg = rtl822x_c45_config_aneg, .read_status = rtl822xb_c45_read_status, .suspend = genphy_c45_pma_suspend,
Sets ETHTOOL_LINK_MODE_TP_BIT and ETHTOOL_LINK_MODE_MII_BIT in phydev->supported. Signed-off-by: Eric Woudstra <ericwouds@gmail.com> --- drivers/net/phy/realtek.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)