[PATCH] enetc: add ioctl() support for PHY-related ops

From: Michael Walle
Date: Thu Nov 07 2019 - 03:39:57 EST


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@xxxxxxxx>
---
drivers/net/ethernet/freescale/enetc/enetc.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c
index b6ff89307409..25af207f1962 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc.c
@@ -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)
--
2.20.1