drivers: net: ethernet: cpsw: implement get phy_id via ioctl
Implement get phy_id via ioctl SIOCGMIIPHY. In switch mode active phy_id is returned and in dual EMAC mode slave's specific phy_id is returned. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ff5b8ef2ef
commit
11f2c98838
1 changed files with 14 additions and 2 deletions
|
@ -1157,14 +1157,26 @@ static int cpsw_hwtstamp_ioctl(struct net_device *dev, struct ifreq *ifr)
|
|||
|
||||
static int cpsw_ndo_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
|
||||
{
|
||||
struct cpsw_priv *priv = netdev_priv(dev);
|
||||
struct mii_ioctl_data *data = if_mii(req);
|
||||
int slave_no = cpsw_slave_index(priv);
|
||||
|
||||
if (!netif_running(dev))
|
||||
return -EINVAL;
|
||||
|
||||
switch (cmd) {
|
||||
#ifdef CONFIG_TI_CPTS
|
||||
if (cmd == SIOCSHWTSTAMP)
|
||||
case SIOCSHWTSTAMP:
|
||||
return cpsw_hwtstamp_ioctl(dev, req);
|
||||
#endif
|
||||
return -ENOTSUPP;
|
||||
case SIOCGMIIPHY:
|
||||
data->phy_id = priv->slaves[slave_no].phy->addr;
|
||||
break;
|
||||
default:
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void cpsw_ndo_tx_timeout(struct net_device *ndev)
|
||||
|
|
Loading…
Reference in a new issue