net: phy: replace genphy_10g_driver with genphy_c45_driver
authorHeiner Kallweit <hkallweit1@gmail.com>
Sun, 7 Apr 2019 11:55:01 +0000 (13:55 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 8 Apr 2019 23:24:05 +0000 (16:24 -0700)
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 <hkallweit1@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy-c45.c
drivers/net/phy/phy_device.c

index 05c3e87ffc2d034025d9b388fa1f64a3ab9b7e88..abe13dfe50ad34e136f38a7394f3a1ef4b9edcbf 100644 (file)
@@ -516,21 +516,10 @@ int gen10g_config_aneg(struct phy_device *phydev)
 }
 EXPORT_SYMBOL_GPL(gen10g_config_aneg);
 
-static int gen10g_read_status(struct phy_device *phydev)
-{
-       /* 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 = {
+struct phy_driver genphy_c45_driver = {
        .phy_id         = 0xffffffff,
        .phy_id_mask    = 0xffffffff,
-       .name           = "Generic 10G PHY",
+       .name           = "Generic Clause 45 PHY",
        .soft_reset     = genphy_no_soft_reset,
-       .features       = PHY_10GBIT_FEATURES,
-       .config_aneg    = gen10g_config_aneg,
-       .read_status    = gen10g_read_status,
+       .read_status    = genphy_c45_read_status,
 };
index dab3ecbb452d83209487468dc0794a4e04af53cf..20b9ccd63345c9bd30a610819ab79ed76aee061b 100644 (file)
@@ -225,7 +225,7 @@ static void phy_mdio_device_remove(struct mdio_device *mdiodev)
 }
 
 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 DEFINE_MUTEX(phy_fixup_lock);
@@ -1174,7 +1174,7 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
         */
        if (!d->driver) {
                if (phydev->is_c45)
-                       d->driver = &genphy_10g_driver.mdiodrv.driver;
+                       d->driver = &genphy_c45_driver.mdiodrv.driver;
                else
                        d->driver = &genphy_driver.mdiodrv.driver;
 
@@ -1335,7 +1335,7 @@ EXPORT_SYMBOL_GPL(phy_driver_is_genphy);
 bool phy_driver_is_genphy_10g(struct phy_device *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);
 
@@ -2308,14 +2308,14 @@ static int __init phy_init(void)
 
        features_init();
 
-       rc = phy_driver_register(&genphy_10g_driver, THIS_MODULE);
+       rc = phy_driver_register(&genphy_c45_driver, THIS_MODULE);
        if (rc)
-               goto err_10g;
+               goto err_c45;
 
        rc = phy_driver_register(&genphy_driver, THIS_MODULE);
        if (rc) {
-               phy_driver_unregister(&genphy_10g_driver);
-err_10g:
+               phy_driver_unregister(&genphy_c45_driver);
+err_c45:
                mdio_bus_exit();
        }
 
@@ -2324,7 +2324,7 @@ err_10g:
 
 static void __exit phy_exit(void)
 {
-       phy_driver_unregister(&genphy_10g_driver);
+       phy_driver_unregister(&genphy_c45_driver);
        phy_driver_unregister(&genphy_driver);
        mdio_bus_exit();
 }