提交 aebc78a4 编写于 作者: F Florian Fainelli 提交者: David S. Miller

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: NFlorian Fainelli <f.fainelli@gmail.com>
上级 e8a714e0
......@@ -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,
},
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册