[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BYAPR11MB355807D7460030E897709AA1ECFC2@BYAPR11MB3558.namprd11.prod.outlook.com>
Date: Fri, 31 May 2024 19:22:24 +0000
From: <Tristram.Ha@...rochip.com>
To: <enguerrand.de-ribaucourt@...oirfairelinux.com>
CC: <andrew@...n.ch>, <hkallweit1@...il.com>, <linux@...linux.org.uk>,
<Woojung.Huh@...rochip.com>, <UNGLinuxDriver@...rochip.com>,
<netdev@...r.kernel.org>
Subject: RE: [PATCH net v4 2/5] net: phy: micrel: disable suspend/resume
callbacks following errata
> -----Original Message-----
> From: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@...oirfairelinux.com>
> Sent: Friday, May 31, 2024 7:24 AM
> To: netdev@...r.kernel.org
> Cc: andrew@...n.ch; hkallweit1@...il.com; linux@...linux.org.uk; Woojung Huh -
> C21699 <Woojung.Huh@...rochip.com>; UNGLinuxDriver
> <UNGLinuxDriver@...rochip.com>; Enguerrand de Ribaucourt <enguerrand.de-
> ribaucourt@...oirfairelinux.com>
> Subject: [PATCH net v4 2/5] net: phy: micrel: disable suspend/resume callbacks
> following errata
>
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content
> is safe
>
> 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.
>
> Fixes: fc3973a1fa09 ("phy: micrel: add Microchip KSZ 9477 Switch PHY support")
> Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-
> ribaucourt@...oirfairelinux.com>
> ---
> v4:
> - rebase on net/main
> - add Fixes tag
> v3: https://lore.kernel.org/all/20240530102436.226189-3-enguerrand.de-
> ribaucourt@...oirfairelinux.com/
> ---
> drivers/net/phy/micrel.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
> index 8a6dfaceeab3..2608d6cc7257 100644
> --- a/drivers/net/phy/micrel.c
> +++ b/drivers/net/phy/micrel.c
> @@ -5492,8 +5492,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,
> }, {
> .phy_id = PHY_ID_KSZ9897,
KSZ9893 uses the same PHY driver as KSZ9477. KSZ9893 belongs to KSZ9893
family while KSZ9477 belongs to KSZ9897 family. They share most
registers but KSZ9893 does not require PHY setup for link compatibility
and does not have this PHY power up link lost issue, so it is not
appropriate to completely disable PHY power down.
PHY power down is executed when the network device is turned off. The
PHY is powered up when the network device is turned on. This sometimes
can cause other ports in KSZ9897 switch to lose link temporarily. The
link will come back.
In my opinion this problem does not impact much as the network devices
are not likely to be turned off/on many times and likely to be turned
off once during system initialization.
Powered by blists - more mailing lists