@@ -5514,8 +5514,9 @@ static struct phy_driver ksphy_driver[] = {
.config_init = ksz9477_config_init,
.config_intr = kszphy_config_intr,
.handle_interrupt = kszphy_handle_interrupt,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ /* No suspend/resume callbacks because of errata DS80000758:
+ * Toggling PHY Powerdown can cause errors or link failures in adjacent PHYs
+ */
.get_features = ksz9477_get_features,
}, {
.name = "Microchip KSZ9897 Switch",
@@ -5524,8 +5525,9 @@ static struct phy_driver ksphy_driver[] = {
.config_aneg = ksz8873mll_config_aneg,
.read_status = ksz8873mll_read_status,
.match_phy_device = ksz9897_match_phy_device,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ /* No suspend/resume callbacks because of errata DS00002330D:
+ * Toggling PHY Powerdown can cause errors or link failures in adjacent PHYs
+ */
} };
module_phy_driver(ksphy_driver);
Microchip's erratas state that powering down a PHY may cause errors on the adjacent PHYs due to the power supply noise. The suggested workaround is to avoid toggling the powerdown bit dynamically while traffic may be present. Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com> --- drivers/net/phy/micrel.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)