net: dsa: felix: Don't restart PCS SGMII AN if not needed
authorAlex Marginean <alexandru.marginean@nxp.com>
Thu, 16 Jan 2020 18:09:59 +0000 (20:09 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Jan 2020 12:17:49 +0000 (13:17 +0100)
commit8c6123e150f26eda011bc284e7aff221ea4d306b
tree0c41b672759b0a35c259d6a2a6ff7d30a0a041b7
parent062a33b1ad7c8df9f8f03f7b01c18e31a794a01d
net: dsa: felix: Don't restart PCS SGMII AN if not needed

Some PHYs like VSC8234 don't like it when AN restarts on their system side
and they restart line side AN too, going into an endless link up/down loop.
Don't restart PCS AN if link is up already.

Although in theory this feedback loop should be possible with the other
in-band AN modes too, for some reason it was not seen with the VSC8514
QSGMII and AQR412 USXGMII PHYs. So keep this logic only for SGMII where
the problem was found.

Fixes: bdeced75b13f ("net: dsa: felix: Add PCS operations for PHYLINK")
Suggested-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/ocelot/felix_vsc9959.c