On Wed, Nov 27, 2024 at 09:56:42AM +0100, Krzysztof Hałasa wrote: > phydev->autoneg appears to indicate if autonegotiation is enabled or > not. Correct. > Unfortunately it's initially set based on the supported capability > rather than the actual hw setting. We need a clear definition of 'initially', and when does it actually matter. Initially, things like speed, duplex and set to UNKNOWN. They don't make any sense until the link is up. phydev->advertise is set to phydev->supported, so that we advertise all the capabilities of the PHY. However, at probe, this does not really matter, it is only when phy_start() is called is the hardware actually configured with what it should advertise, or even if it should do auto-neg or not. In the end, this might not matter. > While in most cases there is no > difference (i.e., autoneg is supported and on by default), certain > adapters (e.g. fiber optics) use fixed settings, configured in hardware. If the hardware is not capable of supporting autoneg, why is autoneg in phydev->supported? To me, that is the real issue here. Andrew