diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c
index c27cfce..99a1c61 100644
--- a/drivers/net/au1000_eth.c
+++ b/drivers/net/au1000_eth.c
@@ -1316,12 +1316,20 @@ static void set_rx_mode(struct net_device *dev)
 static int au1000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
 {
 	struct au1000_private *aup = (struct au1000_private *)dev->priv;
+	struct mii_ioctl_data *data = if_mii(rq);
+	int rc = -EOPNOTSUPP;
 
 	if (!netif_running(dev)) return -EINVAL;
 
 	if (!aup->phy_dev) return -EINVAL; // PHY not controllable
 
-	return phy_mii_ioctl(aup->phy_dev, if_mii(rq), cmd);
+	switch (cmd) {
+	default:
+		rc = phy_mii_ioctl(aup->phy_dev, data, cmd);
+		break;
+	}
+
+	return rc;
 }
 
 static struct net_device_stats *au1000_get_stats(struct net_device *dev)