diff options
Diffstat (limited to 'drivers/net/wimax/i2400m/usb.c')
| -rw-r--r-- | drivers/net/wimax/i2400m/usb.c | 18 | 
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/wimax/i2400m/usb.c b/drivers/net/wimax/i2400m/usb.c index 2c1b8b68764..29b1e033a10 100644 --- a/drivers/net/wimax/i2400m/usb.c +++ b/drivers/net/wimax/i2400m/usb.c @@ -339,6 +339,23 @@ int i2400mu_bus_reset(struct i2400m *i2400m, enum i2400m_reset_type rt)  	return result;  } +static void i2400mu_get_drvinfo(struct net_device *net_dev, +                                struct ethtool_drvinfo *info) +{ +	struct i2400m *i2400m = net_dev_to_i2400m(net_dev); +	struct i2400mu *i2400mu = container_of(i2400m, struct i2400mu, i2400m); +	struct usb_device *udev = i2400mu->usb_dev; + +	strncpy(info->driver, KBUILD_MODNAME, sizeof(info->driver) - 1); +	strncpy(info->fw_version, +	        i2400m->fw_name ? : "", sizeof(info->fw_version) - 1); +	usb_make_path(udev, info->bus_info, sizeof(info->bus_info)); +} + +static const struct ethtool_ops i2400mu_ethtool_ops = { +	.get_drvinfo = i2400mu_get_drvinfo, +	.get_link = ethtool_op_get_link, +};  static  void i2400mu_netdev_setup(struct net_device *net_dev) @@ -347,6 +364,7 @@ void i2400mu_netdev_setup(struct net_device *net_dev)  	struct i2400mu *i2400mu = container_of(i2400m, struct i2400mu, i2400m);  	i2400mu_init(i2400mu);  	i2400m_netdev_setup(net_dev); +	net_dev->ethtool_ops = &i2400mu_ethtool_ops;  }  |