Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aebc78a4 authored by Florian Fainelli's avatar Florian Fainelli Committed by David S. Miller
Browse files

net: phy: teranetics: Utilize generic functions



Update teranetics_aneg_done() to use genphy_c45_aneg_done() instead of
duplicating that code, and switch to gen10g_* functions where
appropriate instead of maintaining identical copies doing nothing.

Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
parent e8a714e0
Loading
Loading
Loading
Loading
+5 −27
Original line number Diff line number Diff line
@@ -34,39 +34,17 @@ MODULE_LICENSE("GPL v2");
				MDIO_PHYXS_LNSTAT_SYNC3 | \
				MDIO_PHYXS_LNSTAT_ALIGN)

static int teranetics_config_init(struct phy_device *phydev)
{
	phydev->supported = SUPPORTED_10000baseT_Full;
	phydev->advertising = SUPPORTED_10000baseT_Full;

	return 0;
}

static int teranetics_soft_reset(struct phy_device *phydev)
{
	return 0;
}

static int teranetics_aneg_done(struct phy_device *phydev)
{
	int reg;

	/* auto negotiation state can only be checked when using copper
	 * port, if using fiber port, just lie it's done.
	 */
	if (!phy_read_mmd(phydev, MDIO_MMD_VEND1, 93)) {
		reg = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_STAT1);
		return (reg < 0) ? reg : (reg & BMSR_ANEGCOMPLETE);
	}
	if (!phy_read_mmd(phydev, MDIO_MMD_VEND1, 93))
		return genphy_c45_aneg_done(phydev);

	return 1;
}

static int teranetics_config_aneg(struct phy_device *phydev)
{
	return 0;
}

static int teranetics_read_status(struct phy_device *phydev)
{
	int reg;
@@ -102,10 +80,10 @@ static struct phy_driver teranetics_driver[] = {
	.phy_id		= PHY_ID_TN2020,
	.phy_id_mask	= 0xffffffff,
	.name		= "Teranetics TN2020",
	.soft_reset	= teranetics_soft_reset,
	.soft_reset	= gen10g_no_soft_reset,
	.aneg_done	= teranetics_aneg_done,
	.config_init    = teranetics_config_init,
	.config_aneg    = teranetics_config_aneg,
	.config_init    = gen10g_config_init,
	.config_aneg    = gen10g_config_aneg,
	.read_status	= teranetics_read_status,
	.match_phy_device = teranetics_match_phy_device,
},