[PATCH net-next v4 09/12] ax88179_178a: Add ethtool get_drvinfo

From: Birger Koblitz

Date: Fri Jul 31 2026 - 12:37:54 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>
---
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