mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-08 14:13:53 +00:00
net: phy: c45: add support for 1000BASE-T1 forced setup
Add support to force 1000BASE-T1 by setting the correct control bit in the MDIO_MMD_PMA_PMD_BT1_CTRL register. Signed-off-by: Stefan Eichenberger <eichest@gmail.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
6f1c646d88
commit
25108a834e
@ -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 genphy_c45_pma_setup_forced(struct phy_device *phydev)
|
||||||
{
|
{
|
||||||
int ctrl1, ctrl2, ret;
|
int bt1_ctrl, ctrl1, ctrl2, ret;
|
||||||
|
|
||||||
/* Half duplex is not supported */
|
/* Half duplex is not supported */
|
||||||
if (phydev->duplex != DUPLEX_FULL)
|
if (phydev->duplex != DUPLEX_FULL)
|
||||||
@ -176,6 +176,15 @@ int genphy_c45_pma_setup_forced(struct phy_device *phydev)
|
|||||||
ret = genphy_c45_pma_baset1_setup_master_slave(phydev);
|
ret = genphy_c45_pma_baset1_setup_master_slave(phydev);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
bt1_ctrl = 0;
|
||||||
|
if (phydev->speed == SPEED_1000)
|
||||||
|
bt1_ctrl = MDIO_PMA_PMD_BT1_CTRL_STRAP_B1000;
|
||||||
|
|
||||||
|
ret = phy_modify_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_PMA_PMD_BT1_CTRL,
|
||||||
|
MDIO_PMA_PMD_BT1_CTRL_STRAP, bt1_ctrl);
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
return genphy_c45_an_disable_aneg(phydev);
|
return genphy_c45_an_disable_aneg(phydev);
|
||||||
|
Loading…
Reference in New Issue
Block a user