enetc: add ioctl() support for PHY-related ops
authorMichael Walle <michael@walle.cc>
Thu, 7 Nov 2019 08:39:37 +0000 (09:39 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 7 Nov 2019 23:25:17 +0000 (15:25 -0800)
If there is an attached PHY try to handle the requested ioctl with its
handler, which allows the userspace to access PHY registers, for
example. This will make mii-diag and similar tools work.

Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/enetc/enetc.c

index b6ff893..25af207 100644 (file)
@@ -1599,7 +1599,10 @@ int enetc_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
        if (cmd == SIOCGHWTSTAMP)
                return enetc_hwtstamp_get(ndev, rq);
 #endif
-       return -EINVAL;
+
+       if (!ndev->phydev)
+               return -EINVAL;
+       return phy_mii_ioctl(ndev->phydev, rq, cmd);
 }
 
 int enetc_alloc_msix(struct enetc_ndev_priv *priv)