Skip to content
Snippets Groups Projects
Commit ebfdacb4 authored by Andy Fleming's avatar Andy Fleming Committed by Kumar Gala
Browse files

phylib: Work around bug in Teranetics PHY


The Teranetics PHY does not properly report the link state
for fiber connections. The new PHY code actually checked the link,
and so the FM driver would refuse to talk over a linkless PHY.

But the link may actually be up, so now we always report it as up
for fiber connections on the tn2020.

Signed-off-by: default avatarAndy Fleming <afleming@freescale.com>
parent babb348c
No related branches found
No related tags found
No related merge requests found
...@@ -41,6 +41,25 @@ int tn2020_config(struct phy_device *phydev) ...@@ -41,6 +41,25 @@ int tn2020_config(struct phy_device *phydev)
return 0; return 0;
} }
int tn2020_startup(struct phy_device *phydev)
{
if (phydev->port != PORT_FIBRE)
return gen10g_startup(phydev);
/*
* The TN2020 only pretends to support fiber.
* It works, but it doesn't look like it works,
* so the link status reports no link.
*/
phydev->link = 1;
/* For now just lie and say it's 10G all the time */
phydev->speed = SPEED_10000;
phydev->duplex = DUPLEX_FULL;
return 0;
}
struct phy_driver tn2020_driver = { struct phy_driver tn2020_driver = {
.name = "Teranetics TN2020", .name = "Teranetics TN2020",
.uid = 0x00a19410, .uid = 0x00a19410,
...@@ -50,7 +69,7 @@ struct phy_driver tn2020_driver = { ...@@ -50,7 +69,7 @@ struct phy_driver tn2020_driver = {
MDIO_DEVS_PHYXS | MDIO_DEVS_AN | MDIO_DEVS_PHYXS | MDIO_DEVS_AN |
MDIO_DEVS_VEND1 | MDIO_DEVS_VEND2), MDIO_DEVS_VEND1 | MDIO_DEVS_VEND2),
.config = &tn2020_config, .config = &tn2020_config,
.startup = &gen10g_startup, .startup = &tn2020_startup,
.shutdown = &gen10g_shutdown, .shutdown = &gen10g_shutdown,
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment