net: asix: autoneg will set WRITE_MEDIUM reg
authorRobert Foss <robert.foss@collabora.com>
Mon, 29 Aug 2016 13:32:19 +0000 (09:32 -0400)
committerDavid S. Miller <davem@davemloft.net>
Thu, 1 Sep 2016 04:07:06 +0000 (21:07 -0700)
From: Grant Grundler <grundler@chromium.org>

The miii_nway_restart() causes a PHY link change activity and
ax88772_link_reset will be called. link_reset will set
AX_CMD_WRITE_MEDIUM_MODE register correctly.

The asix_write_medium_mode in reset() fills in a default value to the register
which may be different from the negotiation result. So do this first.

Ignore the ret value since it's ignored in XXX_link_reset() functions.

Signed-off-by: Grant Grundler <grundler@google.com>
Signed-off-by: Robert Foss <robert.foss@collabora.com>
Tested-by: Robert Foss <robert.foss@collabora.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/asix_devices.c

index dbcdda2..cce2495 100644 (file)
@@ -928,12 +928,9 @@ static int ax88178_reset(struct usbnet *dev)
        asix_mdio_write(dev->net, dev->mii.phy_id, MII_CTRL1000,
                        ADVERTISE_1000FULL);
 
+       asix_write_medium_mode(dev, AX88178_MEDIUM_DEFAULT, 0);
        mii_nway_restart(&dev->mii);
 
-       ret = asix_write_medium_mode(dev, AX88178_MEDIUM_DEFAULT, 0);
-       if (ret < 0)
-               return ret;
-
        /* Rewrite MAC address */
        memcpy(data->mac_addr, dev->net->dev_addr, ETH_ALEN);
        ret = asix_write_cmd(dev, AX_CMD_WRITE_NODE_ID, 0, 0, ETH_ALEN,