Add ax88179a_get_drvinfo() as implementation of get_drvinfo, in order to provide information about the device firmware. Signed-off-by: Birger Koblitz Reviewed-by: Andrew Lunn --- drivers/net/usb/ax88179a_devices.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/net/usb/ax88179a_devices.c b/drivers/net/usb/ax88179a_devices.c index 5ef55f29d64a534747e5480faf192b06817a61f4..7408ac8c87a843a63e1719d765dd61e718432e01 100644 --- a/drivers/net/usb/ax88179a_devices.c +++ b/drivers/net/usb/ax88179a_devices.c @@ -216,6 +216,20 @@ static int ax88179a_resume(struct usb_interface *intf) return usbnet_resume(intf); } +static void ax88179a_get_drvinfo(struct net_device *net, struct ethtool_drvinfo *info) +{ + struct ax88179_data *priv = netdev2data(net); + + /* 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 ax88179a_bulkin_config(struct usbnet *dev, u8 link_sts, u8 speed, bool full_duplex) { struct ax88179_data *ax179_data = dev->driver_priv; @@ -305,6 +319,7 @@ static int ax88179a_set_eee(struct net_device *net, struct ethtool_keee *edata) } static const struct ethtool_ops ax88179a_ethtool_ops = { + .get_drvinfo = ax88179a_get_drvinfo, .get_link = ethtool_op_get_link, .get_msglevel = usbnet_get_msglevel, .set_msglevel = usbnet_set_msglevel, -- 2.47.3