[PATCH 1/1] net: phy: Do not do CL22 phy reset before ethernet phy driver probe

Tom Rini trini at konsulko.com
Sun Oct 26 18:55:26 CET 2025


On Sun, Oct 26, 2025 at 06:32:23PM +0100, Paul Kocialkowski wrote:
> Hi,
> 
> On Sun 26 Oct 25, 16:56, Marek Vasut wrote:
> > On 10/26/25 4:43 PM, Tom Rini wrote:
> > > On Tue, Aug 05, 2025 at 08:00:29PM +0200, Paul Kocialkowski wrote:
> > > > Hi,
> > > > 
> > > > Le Mon 14 Oct 24, 10:43, Marek Vasut a écrit :
> > > > > On 10/14/24 9:06 AM, Sky Huang wrote:
> > > > > > From: "SkyLake.Huang" <skylake.huang at mediatek.com>
> > > > > > 
> > > > > > Remove unnecessary CL22 phy reset before ethernet phy driver
> > > > > > probe. Lots of ethernet phys requires driver to load firmware.
> > > > > > Before that, CL22 phy reset may lead to malfunction.
> > > > > > 
> > > > > > Signed-off-by: SkyLake.Huang <skylake.huang at mediatek.com>
> > > > > > ---
> > > > > >    drivers/net/phy/phy.c | 2 --
> > > > > >    1 file changed, 2 deletions(-)
> > > > > > 
> > > > > > diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
> > > > > > index 716a1d46111..e6fed8c41d7 100644
> > > > > > --- a/drivers/net/phy/phy.c
> > > > > > +++ b/drivers/net/phy/phy.c
> > > > > > @@ -839,8 +839,6 @@ struct phy_device *phy_find_by_mask(struct mii_dev *bus, uint phy_mask)
> > > > > >    static void phy_connect_dev(struct phy_device *phydev, struct udevice *dev,
> > > > > >    			    phy_interface_t interface)
> > > > > >    {
> > > > > > -	/* Soft Reset the PHY */
> > > > > > -	phy_reset(phydev);
> > > > > >    	if (phydev->dev && phydev->dev != dev) {
> > > > > >    		printf("%s:%d is connected to %s.  Reconnecting to %s\n",
> > > > > >    		       phydev->bus->name, phydev->addr,
> > > > > 
> > > > > This needs clarification and likely has to be handled differently. Removing
> > > > > the reset would leave the PHY in potentially undefined state.
> > > > > 
> > > > > Which PHY is affected by this ?
> > > > 
> > > > Good hunch. I just bisected down to this commit as I had some issues with my
> > > > Allwinner V3 board using the internal CL22 PHY. The symptom is that the LEDS's
> > > > polarity was inverted. Network still seems to work (although not tested beyond
> > > > ping).
> > > > 
> > > > This change can have very significant consequences in general, which were not
> > > > explored at all in the commit. This may break many boards that do rely on that
> > > > PHY reset, in various scenarios and for various reasons.
> > > > 
> > > > I think it should be reverted as soon as possible to restore previous behavior.
> > > 
> > > I'm wondering if anyone has further comments here? If I do go and revert
> > > this what is then going to break on the MediaTek side for example?
> > Let's revert it, and if MTK stuff breaks, let's fix it properly then.
> 
> Agreed, keeping it only saves one setup but sacrifices many others. This is
> definitely not right.
> 
> An immediate solution to support Mediatek would be to add a config
> option (enabled by default) for the PHY reset. Or maybe this could be described
> in the board file somehow (this is a policy decision so I don't think any
> approach based on device-tree would be relevant here).

OK, can you please post the revert and cc the MediaTek people,
explaining what you ran in to? Thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20251026/a473a0e8/attachment.sig>


More information about the U-Boot mailing list