Re: [PATCH net-next v11 06/15] ax88179_178a: Add HW support for AX179A-based chips

From: Birger Koblitz

Date: Tue Sep 15 2026 - 20:16:27 EST


On 9/15/26 14:07, Andrew Lunn wrote:
On Tue, Sep 15, 2026 at 02:01:48AM +0200, Birger Koblitz wrote:
On 9/14/26 18:53, Andrew Lunn wrote:
+static const struct net_device_ops ax88179a_netdev_ops = {
+ .ndo_open = usbnet_open,
+ .ndo_stop = usbnet_stop,
+ .ndo_start_xmit = usbnet_start_xmit,
+ .ndo_tx_timeout = usbnet_tx_timeout,
+ .ndo_get_stats64 = dev_get_tstats64,
+ .ndo_change_mtu = ax88179_change_mtu,
+ .ndo_set_mac_address = ax88179_set_mac_addr,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_eth_ioctl = usbnet_mii_ioctl,

dev->mii.mdio_read is never initialized for ax88179a, so
dev->mii.mdio_read()
through usbnet_mii_ioctl() is a NULL function pointer.

Something like:

static int ax88179a_mii_ioctl(...)
{
struct ax88179_data *data = netdev2data(net);
return phylink_mii_ioctl(data->phylink, ifr, cmd);
}

Is this transitory? Does a later patch fix this up?
The aim is to remove all dev->mii accesses.


No, unfortunately, this is an mii-leftover. I thought that
usbnet was emulating the mii ioctl somehow, not that it was expecting
to be able to use a mii_mdio_read. I will remove the
+ .ndo_eth_ioctl = usbnet_mii_ioctl,
line, entirely.

It would be nice to use what is proposed, so the ioctl keeps working.

You can test it with mii-tool.

Thanks for the help, Andrew. I now implemented it as proposed by Nicolai and will send it shortly, after a bit more testing.

Birger