Commit 5b73b398 authored by Felipe Damasio's avatar Felipe Damasio Committed by Stephen Hemminger

Add support for get-MII-data ioctls in 8139cp net driver

parent b97490bf
...@@ -1649,15 +1649,28 @@ static int cp_ethtool_ioctl (struct cp_private *cp, void *useraddr) ...@@ -1649,15 +1649,28 @@ static int cp_ethtool_ioctl (struct cp_private *cp, void *useraddr)
static int cp_ioctl (struct net_device *dev, struct ifreq *rq, int cmd) static int cp_ioctl (struct net_device *dev, struct ifreq *rq, int cmd)
{ {
struct cp_private *cp = dev->priv; struct cp_private *cp = dev->priv;
struct mii_ioctl_data *mii;
int rc = 0; int rc = 0;
mii = (struct mii_ioctl_data *) &rq->ifr_data;
if (!netif_running(dev)) if (!netif_running(dev))
return -EINVAL; return -EINVAL;
if (cmd != SIOCETHTOOL)
mii->reg_num &= 0x1f;
switch (cmd) { switch (cmd) {
case SIOCETHTOOL: case SIOCETHTOOL:
return cp_ethtool_ioctl(cp, (void *) rq->ifr_data); return cp_ethtool_ioctl(cp, (void *) rq->ifr_data);
case SIOCGMIIPHY: /* Get the address of the PHY in use. */
mii->phy_id = CP_INTERNAL_PHY;
/* Fall Through */
case SIOCGMIIREG: /* Read the specified MII register. */
mii->val_out = mdio_read (dev, CP_INTERNAL_PHY, mii->reg_num);
break;
default: default:
rc = -EOPNOTSUPP; rc = -EOPNOTSUPP;
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment