Message ID | 20230710205900.52894-4-eichest@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Add a driver for the Marvell 88Q2110 PHY | expand |
On Mon, Jul 10, 2023 at 10:58:59PM +0200, Stefan Eichenberger wrote: > Add support for 1000BASE-T1 to the forced link setup. > > Signed-off-by: Stefan Eichenberger <eichest@gmail.com> > --- > drivers/net/phy/phy-c45.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/phy/phy-c45.c b/drivers/net/phy/phy-c45.c > index 93ed072233779..ec1232066b914 100644 > --- a/drivers/net/phy/phy-c45.c > +++ b/drivers/net/phy/phy-c45.c ... > @@ -176,6 +176,12 @@ int genphy_c45_pma_setup_forced(struct phy_device *phydev) > ret = genphy_c45_pma_baset1_setup_master_slave(phydev); > if (ret < 0) > return ret; > + > + bt1_ctrl = 0; > + if (phydev->speed == SPEED_1000) > + bt1_ctrl = MDIO_PMA_PMD_BT1_CTRL_STRAP_B1000; > + phy_modify_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_PMA_PMD_BT1_CTRL, > + MDIO_PMA_PMD_BT1_CTRL_STRAP, bt1_ctrl); check the return value here?
diff --git a/drivers/net/phy/phy-c45.c b/drivers/net/phy/phy-c45.c index 93ed072233779..ec1232066b914 100644 --- a/drivers/net/phy/phy-c45.c +++ b/drivers/net/phy/phy-c45.c @@ -108,7 +108,7 @@ EXPORT_SYMBOL_GPL(genphy_c45_pma_baset1_setup_master_slave); */ int genphy_c45_pma_setup_forced(struct phy_device *phydev) { - int ctrl1, ctrl2, ret; + int bt1_ctrl, ctrl1, ctrl2, ret; /* Half duplex is not supported */ if (phydev->duplex != DUPLEX_FULL) @@ -176,6 +176,12 @@ int genphy_c45_pma_setup_forced(struct phy_device *phydev) ret = genphy_c45_pma_baset1_setup_master_slave(phydev); if (ret < 0) return ret; + + bt1_ctrl = 0; + if (phydev->speed == SPEED_1000) + bt1_ctrl = MDIO_PMA_PMD_BT1_CTRL_STRAP_B1000; + phy_modify_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_PMA_PMD_BT1_CTRL, + MDIO_PMA_PMD_BT1_CTRL_STRAP, bt1_ctrl); } return genphy_c45_an_disable_aneg(phydev); @@ -976,6 +982,10 @@ int genphy_c45_pma_read_abilities(struct phy_device *phydev) phydev->supported, val & MDIO_PMA_PMD_BT1_B10L_ABLE); + linkmode_mod_bit(ETHTOOL_LINK_MODE_1000baseT1_Full_BIT, + phydev->supported, + val & MDIO_PMA_PMD_BT1_B1000_ABLE); + val = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_T1_STAT); if (val < 0) return val;
Add support for 1000BASE-T1 to the forced link setup. Signed-off-by: Stefan Eichenberger <eichest@gmail.com> --- drivers/net/phy/phy-c45.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)