[PATCH net-next v7 11/14] ax88179_178a: Add ethtool get_drvinfo

From: Birger Koblitz

Date: Mon Aug 10 2026 - 08:44:37 EST


Add ax88179a_get_drvinfo() as implementation of get_drvinfo, in order
to provide information about the device firmware.

Signed-off-by: Birger Koblitz <mail@xxxxxxxxxxxxxxxxx>
Reviewed-by: Andrew Lunn <andrew@xxxxxxx>
---
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 2acfc8906c9d0abbab18966d904f6b812a96e584..6b57111a0e05add3fecc6b8ef9078ecf8c301276 100644
--- a/drivers/net/usb/ax88179a_devices.c
+++ b/drivers/net/usb/ax88179a_devices.c
@@ -228,6 +228,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;
@@ -317,6 +331,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