net: phy: micrel: add Asym Pause workaround
authorAntoine Tenart <antoine.tenart@bootlin.com>
Tue, 16 Apr 2019 10:10:20 +0000 (12:10 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 17 Apr 2019 04:36:40 +0000 (21:36 -0700)
commit3aed3e2a143c9619f4c8d0a3b8fe74d7d3d79c93
tree1975307d7f0fff4e866c590c9c64c9eb6531f9b6
parent9c03e2270813173b3690938dfe074a921c11855b
net: phy: micrel: add Asym Pause workaround

The Micrel KSZ9031 PHY may fail to establish a link when the Asymmetric
Pause capability is set. This issue is described in a Silicon Errata
(DS80000691D or DS80000692D), which advises to always disable the
capability. This patch implements the workaround by defining a KSZ9031
specific get_feature callback to force the Asymmetric Pause capability
bit to be cleared.

This fixes issues where the link would not come up at boot time, or when
the Asym Pause bit was set later on.

Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/micrel.c