diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2014-01-31 06:41:05 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-02-02 01:56:48 +0100 |
commit | 01cd7d578e01d342b1c06f0dc41c00b445415753 (patch) | |
tree | f6de0491cb6f9e9b8d5cb58598ed987e0b49da2e /drivers/net/ethernet/ethoc.c | |
parent | net: ethoc: implement basic ethtool operations (diff) | |
download | linux-01cd7d578e01d342b1c06f0dc41c00b445415753.tar.xz linux-01cd7d578e01d342b1c06f0dc41c00b445415753.zip |
net: ethoc: implement ethtool get/set settings
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Reviewed-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/ethoc.c')
-rw-r--r-- | drivers/net/ethernet/ethoc.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/net/ethernet/ethoc.c b/drivers/net/ethernet/ethoc.c index 0623c20131bb..779d3c386ea7 100644 --- a/drivers/net/ethernet/ethoc.c +++ b/drivers/net/ethernet/ethoc.c @@ -890,7 +890,31 @@ out: return NETDEV_TX_OK; } +static int ethoc_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) +{ + struct ethoc *priv = netdev_priv(dev); + struct phy_device *phydev = priv->phy; + + if (!phydev) + return -EOPNOTSUPP; + + return phy_ethtool_gset(phydev, cmd); +} + +static int ethoc_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) +{ + struct ethoc *priv = netdev_priv(dev); + struct phy_device *phydev = priv->phy; + + if (!phydev) + return -EOPNOTSUPP; + + return phy_ethtool_sset(phydev, cmd); +} + const struct ethtool_ops ethoc_ethtool_ops = { + .get_settings = ethoc_get_settings, + .set_settings = ethoc_set_settings, .get_link = ethtool_op_get_link, .get_ts_info = ethtool_op_get_ts_info, }; |