Commit 15f59456 authored by Thomas Petazzoni's avatar Thomas Petazzoni Committed by David S. Miller

net: mvneta: implement ->ndo_do_ioctl() to support PHY ioctls

This commit implements the ->ndo_do_ioctl() operation so that the
PHY-related ioctl() calls can work from userspace, which allows
applications like mii-tool or mii-diag to do their job.
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 71408602
...@@ -2451,6 +2451,21 @@ static int mvneta_stop(struct net_device *dev) ...@@ -2451,6 +2451,21 @@ static int mvneta_stop(struct net_device *dev)
return 0; return 0;
} }
static int mvneta_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
{
struct mvneta_port *pp = netdev_priv(dev);
int ret;
if (!pp->phy_dev)
return -ENOTSUPP;
ret = phy_mii_ioctl(pp->phy_dev, ifr, cmd);
if (!ret)
mvneta_adjust_link(dev);
return ret;
}
/* Ethtool methods */ /* Ethtool methods */
/* Get settings (phy address, speed) for ethtools */ /* Get settings (phy address, speed) for ethtools */
...@@ -2569,6 +2584,7 @@ static const struct net_device_ops mvneta_netdev_ops = { ...@@ -2569,6 +2584,7 @@ static const struct net_device_ops mvneta_netdev_ops = {
.ndo_change_mtu = mvneta_change_mtu, .ndo_change_mtu = mvneta_change_mtu,
.ndo_tx_timeout = mvneta_tx_timeout, .ndo_tx_timeout = mvneta_tx_timeout,
.ndo_get_stats64 = mvneta_get_stats64, .ndo_get_stats64 = mvneta_get_stats64,
.ndo_do_ioctl = mvneta_ioctl,
}; };
const struct ethtool_ops mvneta_eth_tool_ops = { const struct ethtool_ops mvneta_eth_tool_ops = {
......
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