Add ax88179a_get_drvinfo() as implementation of get_drvinfo, in order to provide information about the device firmware. Signed-off-by: Birger Koblitz --- drivers/net/usb/ax88179a_devices.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/net/usb/ax88179a_devices.c b/drivers/net/usb/ax88179a_devices.c index 24ff28acc9366385c2e7c0f7e412635786995568..7634c39b5c986a8fd1aa15ecaf386e0d802f0bee 100644 --- a/drivers/net/usb/ax88179a_devices.c +++ b/drivers/net/usb/ax88179a_devices.c @@ -202,6 +202,21 @@ 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 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 ax88179a_bulkin_config(struct usbnet *dev, u8 link_sts) { struct ax88179_data *ax179_data = dev->driver_priv; @@ -329,6 +344,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