Message ID | 20190408090157.10879-1-alexandru.ardelean@analog.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | net: xilinx: emaclite: add minimal ndo_do_ioctl hook | expand |
From: Alexandru Ardelean <alexandru.ardelean@analog.com> Date: Mon, 8 Apr 2019 12:01:57 +0300 > This hook only implements a minimal set of ioctl hooks to be able to access > MII regs by using phytool. > When using this simple MAC controller, it's pretty difficult to do > debugging of the PHY chip without checking MII regs. > > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> > Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com> Applied to net-next.
diff --git a/drivers/net/ethernet/xilinx/xilinx_emaclite.c b/drivers/net/ethernet/xilinx/xilinx_emaclite.c index b03a417d0073..0aea05ac6dcc 100644 --- a/drivers/net/ethernet/xilinx/xilinx_emaclite.c +++ b/drivers/net/ethernet/xilinx/xilinx_emaclite.c @@ -1229,12 +1229,29 @@ xemaclite_poll_controller(struct net_device *ndev) } #endif +/* Ioctl MII Interface */ +static int xemaclite_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) +{ + if (!dev->phydev || !netif_running(dev)) + return -EINVAL; + + switch (cmd) { + case SIOCGMIIPHY: + case SIOCGMIIREG: + case SIOCSMIIREG: + return phy_mii_ioctl(dev->phydev, rq, cmd); + default: + return -EOPNOTSUPP; + } +} + static const struct net_device_ops xemaclite_netdev_ops = { .ndo_open = xemaclite_open, .ndo_stop = xemaclite_close, .ndo_start_xmit = xemaclite_send, .ndo_set_mac_address = xemaclite_set_mac_address, .ndo_tx_timeout = xemaclite_tx_timeout, + .ndo_do_ioctl = xemaclite_ioctl, #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = xemaclite_poll_controller, #endif