Messages in this thread | | | Subject | Re: [PATCH net-next] phy: micrel: ksz8041nl: do not use power down mode | From | Christophe Leroy <> | Date | Mon, 18 Oct 2021 11:53:03 +0200 |
| |
Le 18/10/2021 à 11:42, Francesco Dolcini a écrit : > From: Stefan Agner <stefan@agner.ch> > > Some Micrel KSZ8041NL PHY chips exhibit continous RX errors after using > the power down mode bit (0.11). If the PHY is taken out of power down > mode in a certain temperature range, the PHY enters a weird state which > leads to continously reporting RX errors. In that state, the MAC is not > able to receive or send any Ethernet frames and the activity LED is > constantly blinking. Since Linux is using the suspend callback when the > interface is taken down, ending up in that state can easily happen > during a normal startup. > > Micrel confirmed the issue in errata DS80000700A [*], caused by abnormal > clock recovery when using power down mode. Even the latest revision (A4, > Revision ID 0x1513) seems to suffer that problem, and according to the > errata is not going to be fixed. > > Remove the suspend/resume callback to avoid using the power down mode > completely.
As far as I can see in the ERRATA, KSZ8041 RNLI also has the bug. Shoudn't you also remove the suspend/resume on that one (which follows in ksphy_driver[])
Christophe
> > [*] https://ww1.microchip.com/downloads/en/DeviceDoc/80000700A.pdf > > Signed-off-by: Stefan Agner <stefan@agner.ch> > Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> > Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> > > --- > There was a previous attempt to merge a similar patch, see > https://lore.kernel.org/all/2ee9441d-1b3b-de6d-691d-b615c04c69d0@gmail.com/. > --- > drivers/net/phy/micrel.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c > index ff452669130a..1f28d5fae677 100644 > --- a/drivers/net/phy/micrel.c > +++ b/drivers/net/phy/micrel.c > @@ -1676,8 +1676,6 @@ static struct phy_driver ksphy_driver[] = { > .get_sset_count = kszphy_get_sset_count, > .get_strings = kszphy_get_strings, > .get_stats = kszphy_get_stats, > - .suspend = genphy_suspend, > - .resume = genphy_resume, > }, { > .phy_id = PHY_ID_KSZ8041RNLI, > .phy_id_mask = MICREL_PHY_ID_MASK, >
| |