net: phy: add generic ndo_do_ioctl handler phy_do_ioctl
A number of network drivers has the same glue code to use phy_mii_ioctl as ndo_do_ioctl handler. So let's add such a generic ndo_do_ioctl handler to phylib. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4262c38dc4
commit
2ab1d925aa
|
@ -432,6 +432,21 @@ int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd)
|
|||
}
|
||||
EXPORT_SYMBOL(phy_mii_ioctl);
|
||||
|
||||
/**
|
||||
* phy_do_ioctl - generic ndo_do_ioctl implementation
|
||||
* @dev: the net_device struct
|
||||
* @ifr: &struct ifreq for socket ioctl's
|
||||
* @cmd: ioctl cmd to execute
|
||||
*/
|
||||
int phy_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
||||
{
|
||||
if (!netif_running(dev) || !dev->phydev)
|
||||
return -ENODEV;
|
||||
|
||||
return phy_mii_ioctl(dev->phydev, ifr, cmd);
|
||||
}
|
||||
EXPORT_SYMBOL(phy_do_ioctl);
|
||||
|
||||
void phy_queue_state_machine(struct phy_device *phydev, unsigned long jiffies)
|
||||
{
|
||||
mod_delayed_work(system_power_efficient_wq, &phydev->state_queue,
|
||||
|
|
|
@ -1242,6 +1242,7 @@ void phy_ethtool_ksettings_get(struct phy_device *phydev,
|
|||
int phy_ethtool_ksettings_set(struct phy_device *phydev,
|
||||
const struct ethtool_link_ksettings *cmd);
|
||||
int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd);
|
||||
int phy_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
|
||||
void phy_request_interrupt(struct phy_device *phydev);
|
||||
void phy_free_interrupt(struct phy_device *phydev);
|
||||
void phy_print_status(struct phy_device *phydev);
|
||||
|
|
Loading…
Reference in New Issue