Message ID | 20191107083937.18228-1-michael@walle.cc |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | enetc: add ioctl() support for PHY-related ops | expand |
On Thu, Nov 07, 2019 at 09:39:37AM +0100, Michael Walle wrote: > 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> > --- > 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; Hi Michael I think EOPNOTSUPP is normal. Yes, you are just moving around what was there before, but you could make this improvement as well. If you don't want to: Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
From: Michael Walle <michael@walle.cc> Date: Thu, 7 Nov 2019 09:39:37 +0100 > 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> Applied.
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)
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> --- drivers/net/ethernet/freescale/enetc/enetc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)