2019-02-25 16:14:54

by Maxime Chevallier

[permalink] [raw]
Subject: [PATCH net-next 0/2] net: phy: marvell10g: Clean .get_features by using C45 helpers

Recent work on C45 helpers by Heiner made the
genphy_c45_pma_read_abilities function generic enough to use as a
default .get_featutes implementation.

This series removes the remaining redundant code in
mv3310_get_features(), and makes the 2110 PHY use
genphy_c45_pma_read_abilities() directly, since it doesn't have the
issue with the wrong abilities being reported.

Maxime Chevallier (2):
net: phy: marvell10g: Let genphy_c45_pma_read_abilities set Aneg bit
net: phy: marvell10g: Use the generic C45 helper to read the 2110
features

drivers/net/phy/marvell10g.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)

--
2.19.2



2019-02-25 16:15:03

by Maxime Chevallier

[permalink] [raw]
Subject: [PATCH net-next 2/2] net: phy: marvell10g: Use the generic C45 helper to read the 2110 features

Contrary to the 3310, the 2110 PHY correctly reports it's 2.5G/5G
abilities. We can therefore use the genphy_c45_pma_read_abilities helper
to build the list of features.

Signed-off-by: Maxime Chevallier <[email protected]>
---
drivers/net/phy/marvell10g.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c
index ab71da55c1e0..79106e70010f 100644
--- a/drivers/net/phy/marvell10g.c
+++ b/drivers/net/phy/marvell10g.c
@@ -472,7 +472,7 @@ static struct phy_driver mv3310_drivers[] = {
.phy_id = MARVELL_PHY_ID_88E2110,
.phy_id_mask = MARVELL_PHY_ID_MASK,
.name = "mv88x2110",
- .features = PHY_10GBIT_FEATURES,
+ .get_features = genphy_c45_pma_read_abilities,
.probe = mv3310_probe,
.soft_reset = gen10g_no_soft_reset,
.config_init = mv3310_config_init,
--
2.19.2


2019-02-25 16:15:13

by Maxime Chevallier

[permalink] [raw]
Subject: [PATCH net-next 1/2] net: phy: marvell10g: Let genphy_c45_pma_read_abilities set Aneg bit

The genphy_c45_pma_read_abilities helper now sets the Autoneg ability
in phydev->supported according to what the AN MMD reports.

We therefore don't need to manually do that in mv3310_get_features().

Signed-off-by: Maxime Chevallier <[email protected]>
Suggested-by: Heiner Kallweit <[email protected]>
---
drivers/net/phy/marvell10g.c | 10 ----------
1 file changed, 10 deletions(-)

diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c
index 580e91deadbc..ab71da55c1e0 100644
--- a/drivers/net/phy/marvell10g.c
+++ b/drivers/net/phy/marvell10g.c
@@ -268,16 +268,6 @@ static int mv3310_get_features(struct phy_device *phydev)
{
int ret, val;

- if (phydev->c45_ids.devices_in_package & MDIO_DEVS_AN) {
- val = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_STAT1);
- if (val < 0)
- return val;
-
- if (val & MDIO_AN_STAT1_ABLE)
- linkmode_set_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
- phydev->supported);
- }
-
ret = genphy_c45_pma_read_abilities(phydev);
if (ret)
return ret;
--
2.19.2


2019-02-28 06:18:55

by David Miller

[permalink] [raw]
Subject: Re: [PATCH net-next 0/2] net: phy: marvell10g: Clean .get_features by using C45 helpers

From: Maxime Chevallier <[email protected]>
Date: Mon, 25 Feb 2019 17:14:05 +0100

> Recent work on C45 helpers by Heiner made the
> genphy_c45_pma_read_abilities function generic enough to use as a
> default .get_featutes implementation.
>
> This series removes the remaining redundant code in
> mv3310_get_features(), and makes the 2110 PHY use
> genphy_c45_pma_read_abilities() directly, since it doesn't have the
> issue with the wrong abilities being reported.

Series applied, thanks Maxime.