Commit 22b56e82 authored by Heiner Kallweit's avatar Heiner Kallweit Committed by David S. Miller

net: phy: replace genphy_10g_driver with genphy_c45_driver

Recently a number of generic functions for Clause 45 PHY's has been
added. So let's replace the old very limited genphy_10g_driver with a
genphy_c45_driver. This driver isn't limited to 10G, however it's worth
to be noted that Clause 45 doesn't cover 1000Base-T. For using
1000Base-T with a Clause 45 PHY a dedicated PHY driver using vendor
registers is needed.
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5af82f52
...@@ -516,21 +516,10 @@ int gen10g_config_aneg(struct phy_device *phydev) ...@@ -516,21 +516,10 @@ int gen10g_config_aneg(struct phy_device *phydev)
} }
EXPORT_SYMBOL_GPL(gen10g_config_aneg); EXPORT_SYMBOL_GPL(gen10g_config_aneg);
static int gen10g_read_status(struct phy_device *phydev) struct phy_driver genphy_c45_driver = {
{
/* For now just lie and say it's 10G all the time */
phydev->speed = SPEED_10000;
phydev->duplex = DUPLEX_FULL;
return genphy_c45_read_link(phydev);
}
struct phy_driver genphy_10g_driver = {
.phy_id = 0xffffffff, .phy_id = 0xffffffff,
.phy_id_mask = 0xffffffff, .phy_id_mask = 0xffffffff,
.name = "Generic 10G PHY", .name = "Generic Clause 45 PHY",
.soft_reset = genphy_no_soft_reset, .soft_reset = genphy_no_soft_reset,
.features = PHY_10GBIT_FEATURES, .read_status = genphy_c45_read_status,
.config_aneg = gen10g_config_aneg,
.read_status = gen10g_read_status,
}; };
...@@ -225,7 +225,7 @@ static void phy_mdio_device_remove(struct mdio_device *mdiodev) ...@@ -225,7 +225,7 @@ static void phy_mdio_device_remove(struct mdio_device *mdiodev)
} }
static struct phy_driver genphy_driver; static struct phy_driver genphy_driver;
extern struct phy_driver genphy_10g_driver; extern struct phy_driver genphy_c45_driver;
static LIST_HEAD(phy_fixup_list); static LIST_HEAD(phy_fixup_list);
static DEFINE_MUTEX(phy_fixup_lock); static DEFINE_MUTEX(phy_fixup_lock);
...@@ -1174,7 +1174,7 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, ...@@ -1174,7 +1174,7 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
*/ */
if (!d->driver) { if (!d->driver) {
if (phydev->is_c45) if (phydev->is_c45)
d->driver = &genphy_10g_driver.mdiodrv.driver; d->driver = &genphy_c45_driver.mdiodrv.driver;
else else
d->driver = &genphy_driver.mdiodrv.driver; d->driver = &genphy_driver.mdiodrv.driver;
...@@ -1335,7 +1335,7 @@ EXPORT_SYMBOL_GPL(phy_driver_is_genphy); ...@@ -1335,7 +1335,7 @@ EXPORT_SYMBOL_GPL(phy_driver_is_genphy);
bool phy_driver_is_genphy_10g(struct phy_device *phydev) bool phy_driver_is_genphy_10g(struct phy_device *phydev)
{ {
return phy_driver_is_genphy_kind(phydev, return phy_driver_is_genphy_kind(phydev,
&genphy_10g_driver.mdiodrv.driver); &genphy_c45_driver.mdiodrv.driver);
} }
EXPORT_SYMBOL_GPL(phy_driver_is_genphy_10g); EXPORT_SYMBOL_GPL(phy_driver_is_genphy_10g);
...@@ -2308,14 +2308,14 @@ static int __init phy_init(void) ...@@ -2308,14 +2308,14 @@ static int __init phy_init(void)
features_init(); features_init();
rc = phy_driver_register(&genphy_10g_driver, THIS_MODULE); rc = phy_driver_register(&genphy_c45_driver, THIS_MODULE);
if (rc) if (rc)
goto err_10g; goto err_c45;
rc = phy_driver_register(&genphy_driver, THIS_MODULE); rc = phy_driver_register(&genphy_driver, THIS_MODULE);
if (rc) { if (rc) {
phy_driver_unregister(&genphy_10g_driver); phy_driver_unregister(&genphy_c45_driver);
err_10g: err_c45:
mdio_bus_exit(); mdio_bus_exit();
} }
...@@ -2324,7 +2324,7 @@ static int __init phy_init(void) ...@@ -2324,7 +2324,7 @@ static int __init phy_init(void)
static void __exit phy_exit(void) static void __exit phy_exit(void)
{ {
phy_driver_unregister(&genphy_10g_driver); phy_driver_unregister(&genphy_c45_driver);
phy_driver_unregister(&genphy_driver); phy_driver_unregister(&genphy_driver);
mdio_bus_exit(); mdio_bus_exit();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment