at803x: double check SGMII side autoneg
authorZefir Kurtisi <zefir.kurtisi@neratec.com>
Mon, 24 Oct 2016 10:40:54 +0000 (12:40 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 27 Oct 2016 20:05:17 +0000 (16:05 -0400)
commitf62265b53ef34a372b657c99e23d32e95b464316
treec84f02849929f6a6ef4e9c58747fd7793226487b
parent4fc6d239ee5640909932c47f3c7b93dd8e415fea
at803x: double check SGMII side autoneg

In SGMII mode, we observed an autonegotiation issue
after power-down-up cycles where the copper side
reports successful link establishment but the
SGMII side's link is down.

This happened in a setup where the at8031 is
connected over SGMII to a eTSEC (fsl gianfar),
but so far could not be reproduced with other
Ethernet device / driver combinations.

This commit adds a wrapper function for at8031
that in case of operating in SGMII mode double
checks SGMII link state when generic aneg_done()
succeeds. It prints a warning on failure but
intentionally does not try to recover from this
state. As a result, if you ever see a warning
'803x_aneg_done: SGMII link is not ok' you will
end up having an Ethernet link up but won't get
any data through. This should not happen, if it
does, please contact the module maintainer.

Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/at803x.c