net: usb: usbnet: add new api ethtool_{get|set}_link_ksettings
The ethtool api {get|set}_settings is deprecated. We add the new api {get|set}_link_ksettings to this driver. As I don't have the hardware, I'd be very pleased if someone may test this patch. Signed-off-by: Philippe Reynes <tremyfr@gmail.com> Acked-by: Oliver Neukum <oneukum@suse.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
37a30b435b
commit
8bae3551e9
|
@ -980,6 +980,40 @@ int usbnet_set_settings (struct net_device *net, struct ethtool_cmd *cmd)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(usbnet_set_settings);
|
||||
|
||||
int usbnet_get_link_ksettings(struct net_device *net,
|
||||
struct ethtool_link_ksettings *cmd)
|
||||
{
|
||||
struct usbnet *dev = netdev_priv(net);
|
||||
|
||||
if (!dev->mii.mdio_read)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
return mii_ethtool_get_link_ksettings(&dev->mii, cmd);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(usbnet_get_link_ksettings);
|
||||
|
||||
int usbnet_set_link_ksettings(struct net_device *net,
|
||||
const struct ethtool_link_ksettings *cmd)
|
||||
{
|
||||
struct usbnet *dev = netdev_priv(net);
|
||||
int retval;
|
||||
|
||||
if (!dev->mii.mdio_write)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
retval = mii_ethtool_set_link_ksettings(&dev->mii, cmd);
|
||||
|
||||
/* link speed/duplex might have changed */
|
||||
if (dev->driver_info->link_reset)
|
||||
dev->driver_info->link_reset(dev);
|
||||
|
||||
/* hard_mtu or rx_urb_size may change in link_reset() */
|
||||
usbnet_update_max_qlen(dev);
|
||||
|
||||
return retval;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(usbnet_set_link_ksettings);
|
||||
|
||||
u32 usbnet_get_link (struct net_device *net)
|
||||
{
|
||||
struct usbnet *dev = netdev_priv(net);
|
||||
|
@ -1046,6 +1080,8 @@ static const struct ethtool_ops usbnet_ethtool_ops = {
|
|||
.get_msglevel = usbnet_get_msglevel,
|
||||
.set_msglevel = usbnet_set_msglevel,
|
||||
.get_ts_info = ethtool_op_get_ts_info,
|
||||
.get_link_ksettings = usbnet_get_link_ksettings,
|
||||
.set_link_ksettings = usbnet_set_link_ksettings,
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
|
|
@ -265,6 +265,10 @@ extern int usbnet_get_settings(struct net_device *net,
|
|||
struct ethtool_cmd *cmd);
|
||||
extern int usbnet_set_settings(struct net_device *net,
|
||||
struct ethtool_cmd *cmd);
|
||||
extern int usbnet_get_link_ksettings(struct net_device *net,
|
||||
struct ethtool_link_ksettings *cmd);
|
||||
extern int usbnet_set_link_ksettings(struct net_device *net,
|
||||
const struct ethtool_link_ksettings *cmd);
|
||||
extern u32 usbnet_get_link(struct net_device *net);
|
||||
extern u32 usbnet_get_msglevel(struct net_device *);
|
||||
extern void usbnet_set_msglevel(struct net_device *, u32);
|
||||
|
|
Loading…
Reference in New Issue