Commit 407d8098 authored by Hans Andersson's avatar Hans Andersson Committed by David S. Miller

net: phy: micrel: add Asym Pause workaround for KSZ9021

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.

Micrel KSZ9021 has no errata, but has the same issue with Asymmetric Pause.
This patch apply the same workaround as the one for KSZ9031.

Fixes: 3aed3e2a ("net: phy: micrel: add Asym Pause workaround")
Signed-off-by: default avatarHans Andersson <hans.andersson@cellavision.se>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent fd4a8093
...@@ -763,6 +763,8 @@ static int ksz9031_get_features(struct phy_device *phydev) ...@@ -763,6 +763,8 @@ static int ksz9031_get_features(struct phy_device *phydev)
* Whenever the device's Asymmetric Pause capability is set to 1, * Whenever the device's Asymmetric Pause capability is set to 1,
* link-up may fail after a link-up to link-down transition. * link-up may fail after a link-up to link-down transition.
* *
* The Errata Sheet is for ksz9031, but ksz9021 has the same issue
*
* Workaround: * Workaround:
* Do not enable the Asymmetric Pause capability bit. * Do not enable the Asymmetric Pause capability bit.
*/ */
...@@ -1076,6 +1078,7 @@ static struct phy_driver ksphy_driver[] = { ...@@ -1076,6 +1078,7 @@ static struct phy_driver ksphy_driver[] = {
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.driver_data = &ksz9021_type, .driver_data = &ksz9021_type,
.probe = kszphy_probe, .probe = kszphy_probe,
.get_features = ksz9031_get_features,
.config_init = ksz9021_config_init, .config_init = ksz9021_config_init,
.ack_interrupt = kszphy_ack_interrupt, .ack_interrupt = kszphy_ack_interrupt,
.config_intr = kszphy_config_intr, .config_intr = kszphy_config_intr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment