On Tue, 2016-07-05 at 14:15 -0700, Florian Fainelli wrote:
On 07/05/2016 02:07 PM, Philippe Reynes wrote:
Hi Florian,
On 05/07/16 06:30, Florian Fainelli wrote:
Le 04/07/2016 16:03, David Miller a Ãcrit :
From: Philippe Reynes<tremyfr@xxxxxxxxx>
Date: Sun, 3 Jul 2016 17:33:57 +0200
There are two generics functions phy_ethtool_{get|set}_link_ksettings,
so we can use them instead of defining the same code in the driver.
Signed-off-by: Philippe Reynes<tremyfr@xxxxxxxxx>
Applied.
The transformation is not equivalent, we lost the checks on
netif_running() in the process, and those are here for a reason, if the
interface is down and therefore clock gated, MDIO accesses to the PHY
will simply fail outright and cause bus errors.
Oh, I see, I've missed this. Sorry for this mistake.
We should revert this path.
Well, maybe better than that, actually put the check in the generic
functions, because if the link is down, aka netif_running() returns
false, link parameters cannot be reliably queried and they are invalid.
Either the hardware or the driver needs to remember:
- Is auto-negotiation enabled
- If so, which modes are advertised
- If not, which mode is forced
And it should still be possible to get or set that information when the
interface is down.