[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c57a8f12-744c-4855-bd18-2197a8caf2a2@lunn.ch>
Date: Wed, 27 Nov 2024 18:37:36 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Krzysztof Hałasa <khalasa@...p.pl>
Cc: netdev <netdev@...r.kernel.org>, Oliver Neukum <oneukum@...e.com>,
Andrew Lunn <andrew+netdev@...n.ch>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org,
Jose Ignacio Tornos Martinez <jtornosm@...hat.com>,
Ming Lei <ming.lei@...hat.com>
Subject: Re: [PATCH] PHY: Fix no autoneg corner case
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
Powered by blists - more mailing lists