Message ID | E1muvFO-00F6jY-1K@rmk-PC.armlinux.org.uk (mailing list archive) |
---|---|
State | Accepted |
Commit | f20f94f7f52c4685c81754f489ffcc72186e8bdb |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: phy: prefer 1000baseT over 1000baseKX | expand |
On Wed, Dec 08, 2021 at 11:36:30AM +0000, Russell King (Oracle) wrote: > The PHY settings table is supposed to be sorted by descending match > priority - in other words, earlier entries are preferred over later > entries. > > The order of 1000baseKX/Full and 1000baseT/Full is such that we > prefer 1000baseKX/Full over 1000baseT/Full, but 1000baseKX/Full is > a lot rarer than 1000baseT/Full, and thus is much less likely to > be preferred. > > This causes phylink problems - it means a fixed link specifying a > speed of 1G and full duplex gets an ethtool linkmode of 1000baseKX/Full > rather than 1000baseT/Full as would be expected - and since we offer > userspace a software emulation of a conventional copper PHY, we want > to offer copper modes in preference to anything else. However, we do > still want to allow the rarer modes as well. > > Hence, let's reorder these two modes to prefer copper. > > Tested-by: Tom Lendacky <thomas.lendacky@amd.com> > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
On 12/8/21 3:36 AM, Russell King (Oracle) wrote: > The PHY settings table is supposed to be sorted by descending match > priority - in other words, earlier entries are preferred over later > entries. > > The order of 1000baseKX/Full and 1000baseT/Full is such that we > prefer 1000baseKX/Full over 1000baseT/Full, but 1000baseKX/Full is > a lot rarer than 1000baseT/Full, and thus is much less likely to > be preferred. > > This causes phylink problems - it means a fixed link specifying a > speed of 1G and full duplex gets an ethtool linkmode of 1000baseKX/Full > rather than 1000baseT/Full as would be expected - and since we offer > userspace a software emulation of a conventional copper PHY, we want > to offer copper modes in preference to anything else. However, we do > still want to allow the rarer modes as well. > > Hence, let's reorder these two modes to prefer copper. > > Tested-by: Tom Lendacky <thomas.lendacky@amd.com> > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Reported-by: Florian Fainelli <f.fainelli@gmail.com>
Hello: This patch was applied to netdev/net-next.git (master) by Jakub Kicinski <kuba@kernel.org>: On Wed, 08 Dec 2021 11:36:30 +0000 you wrote: > The PHY settings table is supposed to be sorted by descending match > priority - in other words, earlier entries are preferred over later > entries. > > The order of 1000baseKX/Full and 1000baseT/Full is such that we > prefer 1000baseKX/Full over 1000baseT/Full, but 1000baseKX/Full is > a lot rarer than 1000baseT/Full, and thus is much less likely to > be preferred. > > [...] Here is the summary with links: - [net-next] net: phy: prefer 1000baseT over 1000baseKX https://git.kernel.org/netdev/net-next/c/f20f94f7f52c You are awesome, thank you!
diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c index 2870c33b8975..271fc01f7f7f 100644 --- a/drivers/net/phy/phy-core.c +++ b/drivers/net/phy/phy-core.c @@ -162,11 +162,11 @@ static const struct phy_setting settings[] = { PHY_SETTING( 2500, FULL, 2500baseT_Full ), PHY_SETTING( 2500, FULL, 2500baseX_Full ), /* 1G */ - PHY_SETTING( 1000, FULL, 1000baseKX_Full ), PHY_SETTING( 1000, FULL, 1000baseT_Full ), PHY_SETTING( 1000, HALF, 1000baseT_Half ), PHY_SETTING( 1000, FULL, 1000baseT1_Full ), PHY_SETTING( 1000, FULL, 1000baseX_Full ), + PHY_SETTING( 1000, FULL, 1000baseKX_Full ), /* 100M */ PHY_SETTING( 100, FULL, 100baseT_Full ), PHY_SETTING( 100, FULL, 100baseT1_Full ),