Skip to content

Commit 22b56e8

Browse files
hkallweitdavem330
authored andcommitted
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: Heiner Kallweit <[email protected]> Reviewed-by: Andrew Lunn <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 5af82f5 commit 22b56e8

File tree

2 files changed

+11
-22
lines changed

2 files changed

+11
-22
lines changed

drivers/net/phy/phy-c45.c

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -516,21 +516,10 @@ int gen10g_config_aneg(struct phy_device *phydev)
516516
}
517517
EXPORT_SYMBOL_GPL(gen10g_config_aneg);
518518

519-
static int gen10g_read_status(struct phy_device *phydev)
520-
{
521-
/* For now just lie and say it's 10G all the time */
522-
phydev->speed = SPEED_10000;
523-
phydev->duplex = DUPLEX_FULL;
524-
525-
return genphy_c45_read_link(phydev);
526-
}
527-
528-
struct phy_driver genphy_10g_driver = {
519+
struct phy_driver genphy_c45_driver = {
529520
.phy_id = 0xffffffff,
530521
.phy_id_mask = 0xffffffff,
531-
.name = "Generic 10G PHY",
522+
.name = "Generic Clause 45 PHY",
532523
.soft_reset = genphy_no_soft_reset,
533-
.features = PHY_10GBIT_FEATURES,
534-
.config_aneg = gen10g_config_aneg,
535-
.read_status = gen10g_read_status,
524+
.read_status = genphy_c45_read_status,
536525
};

drivers/net/phy/phy_device.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ static void phy_mdio_device_remove(struct mdio_device *mdiodev)
225225
}
226226

227227
static struct phy_driver genphy_driver;
228-
extern struct phy_driver genphy_10g_driver;
228+
extern struct phy_driver genphy_c45_driver;
229229

230230
static LIST_HEAD(phy_fixup_list);
231231
static DEFINE_MUTEX(phy_fixup_lock);
@@ -1174,7 +1174,7 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
11741174
*/
11751175
if (!d->driver) {
11761176
if (phydev->is_c45)
1177-
d->driver = &genphy_10g_driver.mdiodrv.driver;
1177+
d->driver = &genphy_c45_driver.mdiodrv.driver;
11781178
else
11791179
d->driver = &genphy_driver.mdiodrv.driver;
11801180

@@ -1335,7 +1335,7 @@ EXPORT_SYMBOL_GPL(phy_driver_is_genphy);
13351335
bool phy_driver_is_genphy_10g(struct phy_device *phydev)
13361336
{
13371337
return phy_driver_is_genphy_kind(phydev,
1338-
&genphy_10g_driver.mdiodrv.driver);
1338+
&genphy_c45_driver.mdiodrv.driver);
13391339
}
13401340
EXPORT_SYMBOL_GPL(phy_driver_is_genphy_10g);
13411341

@@ -2308,14 +2308,14 @@ static int __init phy_init(void)
23082308

23092309
features_init();
23102310

2311-
rc = phy_driver_register(&genphy_10g_driver, THIS_MODULE);
2311+
rc = phy_driver_register(&genphy_c45_driver, THIS_MODULE);
23122312
if (rc)
2313-
goto err_10g;
2313+
goto err_c45;
23142314

23152315
rc = phy_driver_register(&genphy_driver, THIS_MODULE);
23162316
if (rc) {
2317-
phy_driver_unregister(&genphy_10g_driver);
2318-
err_10g:
2317+
phy_driver_unregister(&genphy_c45_driver);
2318+
err_c45:
23192319
mdio_bus_exit();
23202320
}
23212321

@@ -2324,7 +2324,7 @@ static int __init phy_init(void)
23242324

23252325
static void __exit phy_exit(void)
23262326
{
2327-
phy_driver_unregister(&genphy_10g_driver);
2327+
phy_driver_unregister(&genphy_c45_driver);
23282328
phy_driver_unregister(&genphy_driver);
23292329
mdio_bus_exit();
23302330
}

0 commit comments

Comments
 (0)