Add ax88179_get_drvinfo() as implementation of get_drvinfo, in order to provide information about the device firmware. Signed-off-by: Birger Koblitz --- drivers/net/usb/ax88179_178a.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c index f70f79ebc7f7c4d2321e033f7b8d09e6291c842f..d990e28540bdf9336cebfd820b90468d01554450 100644 --- a/drivers/net/usb/ax88179_178a.c +++ b/drivers/net/usb/ax88179_178a.c @@ -758,6 +758,21 @@ static void ax88179_disconnect(struct usb_interface *intf) usbnet_disconnect(intf); } +static void ax88179_get_drvinfo(struct net_device *net, struct ethtool_drvinfo *info) +{ + struct usbnet *dev = netdev_priv(net); + struct ax88179_data *priv = dev->driver_priv; + + /* Inherit standard device info */ + usbnet_get_drvinfo(net, info); + if (priv->chip_version < AX_VERSION_AX88179A) + return; + + snprintf(info->fw_version, sizeof(info->fw_version), "%d.%d.%d.%d", + priv->fw_version[0], priv->fw_version[1], + priv->fw_version[2], priv->fw_version[3]); +} + static void ax88179_get_wol(struct net_device *net, struct ethtool_wolinfo *wolinfo) { @@ -1193,6 +1208,7 @@ static int ax88179_set_eee(struct net_device *net, struct ethtool_keee *edata) } static const struct ethtool_ops ax88179_ethtool_ops = { + .get_drvinfo = ax88179_get_drvinfo, .get_link = ethtool_op_get_link, .get_msglevel = usbnet_get_msglevel, .set_msglevel = usbnet_set_msglevel, -- 2.47.3