diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2020-07-05 21:27:57 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-07-07 15:41:04 -0700 |
commit | 55d8f053ce1bb2c010458c6e9883b9c7ac12adc3 (patch) | |
tree | 867b3c8ddc717c0ee8865e44549765f05c0ba15d | |
parent | 4895d7808e7030c831f2ef83a3cc6ec0d46c30b1 (diff) | |
download | linux-55d8f053ce1bb2c010458c6e9883b9c7ac12adc3.tar.bz2 |
net: phy: Register ethtool PHY operations
Utilize ethtool_set_ethtool_phy_ops to register a suitable set of PHY
ethtool operations in a dynamic fashion such that ethtool will no longer
directy reference PHY library symbols.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/phy/phy_device.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index cf3505e2f587..233334406f0f 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -3027,6 +3027,11 @@ static struct phy_driver genphy_driver = { .set_loopback = genphy_loopback, }; +static const struct ethtool_phy_ops phy_ethtool_phy_ops = { + .start_cable_test = phy_start_cable_test, + .start_cable_test_tdr = phy_start_cable_test_tdr, +}; + static int __init phy_init(void) { int rc; @@ -3035,6 +3040,7 @@ static int __init phy_init(void) if (rc) return rc; + ethtool_set_ethtool_phy_ops(&phy_ethtool_phy_ops); features_init(); rc = phy_driver_register(&genphy_c45_driver, THIS_MODULE); @@ -3056,6 +3062,7 @@ static void __exit phy_exit(void) phy_driver_unregister(&genphy_c45_driver); phy_driver_unregister(&genphy_driver); mdio_bus_exit(); + ethtool_set_ethtool_phy_ops(NULL); } subsys_initcall(phy_init); |