Subject: Re: [PATCH net] r8169: fix rtl8168h wol fail

From: Andrew Lunn <[email-masked]>
Date: Thu, 5 Jan 2023 22:26:07 +0100

On Thu, Jan 05, 2023 at 08:37:07PM +0100, Heiner Kallweit wrote:
> On 05.01.2023 19:04, Chunhao Lin wrote:
> > rtl8168h has an application that it will connect to rtl8211fs through mdi
> > interface. And rtl8211fs will connect to fiber through serdes interface.
> > In this application, rtl8168h revision id will be set to 0x2a.
> > 
> > Because rtl8211fs's firmware will set link capability to 100M and GIGA
> > when link is from off to on. So when system suspend and wol is enabled,
> > rtl8168h will speed down to 100M (because rtl8211fs advertise 100M and GIGA
> > to rtl8168h). If the link speed between rtl81211fs and fiber is GIGA.
> > The link speed between rtl8168h and fiber will mismatch. That will cause
> > wol fail.
> > 
> > In this patch, if rtl8168h is in this kind of application, driver will not
> > speed down phy when wol is enabled.
> > 
> I think the patch title is inappropriate because WoL works normally on
> RTL8168h in the standard setup.
> What you add isn't a fix but a workaround for a firmware bug in RTL8211FS.
> As mentioned in a previous review comment: if speed on fibre side is 1Gbps
> then RTL8211FS shouldn't advertise 100Mbps on MDI/UTP side.
> 
> Last but not least the user can still use e.g. ethtool to change the speed
> to 100Mbps thus breaking the link.

I agree with Heiner here. I assume you cannot fix the firmware?

So can we detect the broken firmware and correctly set
phydev->advertising? That will fix WoL and should prevent the user
from using ethtool to select a slower speed.

     Andrew