netdev: gianfar: add MII ioctl handler
This is the same kind of wrapper that can also be found in many other network device drivers. Tested with a freescale MPC8349E host CPU: Toggled the interface LEDs on a DP83865 PHY. Signed-off-by: Clifford Wolf <clifford@clifford.at> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
43baa5bb26
commit
0faac9f75f
@@ -296,6 +296,20 @@ err_out:
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Ioctl MII Interface */
|
||||||
|
static int gfar_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
|
||||||
|
{
|
||||||
|
struct gfar_private *priv = netdev_priv(dev);
|
||||||
|
|
||||||
|
if (!netif_running(dev))
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
if (!priv->phydev)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
|
return phy_mii_ioctl(priv->phydev, if_mii(rq), cmd);
|
||||||
|
}
|
||||||
|
|
||||||
/* Set up the ethernet device structure, private data,
|
/* Set up the ethernet device structure, private data,
|
||||||
* and anything else we need before we start */
|
* and anything else we need before we start */
|
||||||
static int gfar_probe(struct of_device *ofdev,
|
static int gfar_probe(struct of_device *ofdev,
|
||||||
@@ -366,6 +380,7 @@ static int gfar_probe(struct of_device *ofdev,
|
|||||||
dev->set_multicast_list = gfar_set_multi;
|
dev->set_multicast_list = gfar_set_multi;
|
||||||
|
|
||||||
dev->ethtool_ops = &gfar_ethtool_ops;
|
dev->ethtool_ops = &gfar_ethtool_ops;
|
||||||
|
dev->do_ioctl = gfar_ioctl;
|
||||||
|
|
||||||
if (priv->device_flags & FSL_GIANFAR_DEV_HAS_CSUM) {
|
if (priv->device_flags & FSL_GIANFAR_DEV_HAS_CSUM) {
|
||||||
priv->rx_csum_enable = 1;
|
priv->rx_csum_enable = 1;
|
||||||
|
Reference in New Issue
Block a user