|
@@ -34,39 +34,17 @@ MODULE_LICENSE("GPL v2");
|
|
MDIO_PHYXS_LNSTAT_SYNC3 | \
|
|
MDIO_PHYXS_LNSTAT_SYNC3 | \
|
|
MDIO_PHYXS_LNSTAT_ALIGN)
|
|
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)
|
|
static int teranetics_aneg_done(struct phy_device *phydev)
|
|
{
|
|
{
|
|
- int reg;
|
|
|
|
-
|
|
|
|
/* auto negotiation state can only be checked when using copper
|
|
/* auto negotiation state can only be checked when using copper
|
|
* port, if using fiber port, just lie it's done.
|
|
* 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;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
|
|
-static int teranetics_config_aneg(struct phy_device *phydev)
|
|
|
|
-{
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static int teranetics_read_status(struct phy_device *phydev)
|
|
static int teranetics_read_status(struct phy_device *phydev)
|
|
{
|
|
{
|
|
int reg;
|
|
int reg;
|
|
@@ -102,10 +80,10 @@ static struct phy_driver teranetics_driver[] = {
|
|
.phy_id = PHY_ID_TN2020,
|
|
.phy_id = PHY_ID_TN2020,
|
|
.phy_id_mask = 0xffffffff,
|
|
.phy_id_mask = 0xffffffff,
|
|
.name = "Teranetics TN2020",
|
|
.name = "Teranetics TN2020",
|
|
- .soft_reset = teranetics_soft_reset,
|
|
|
|
|
|
+ .soft_reset = gen10g_no_soft_reset,
|
|
.aneg_done = teranetics_aneg_done,
|
|
.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,
|
|
.read_status = teranetics_read_status,
|
|
.match_phy_device = teranetics_match_phy_device,
|
|
.match_phy_device = teranetics_match_phy_device,
|
|
},
|
|
},
|