<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/phy/phy-core.c, branch linux-5.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2022-01-27T08:19:43Z</updated>
<entry>
<title>net: phy: prefer 1000baseT over 1000baseKX</title>
<updated>2022-01-27T08:19:43Z</updated>
<author>
<name>Russell King (Oracle)</name>
</author>
<published>2021-12-08T11:36:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=743911a2bf8be747ffe66b5f160bc2731ff2bb69'/>
<id>urn:sha1:743911a2bf8be747ffe66b5f160bc2731ff2bb69</id>
<content type='text'>
[ Upstream commit f20f94f7f52c4685c81754f489ffcc72186e8bdb ]

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 &lt;thomas.lendacky@amd.com&gt;
Signed-off-by: Russell King (Oracle) &lt;rmk+kernel@armlinux.org.uk&gt;
Reviewed-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Reported-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Link: https://lore.kernel.org/r/E1muvFO-00F6jY-1K@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: phy: extract pause mode</title>
<updated>2019-10-05T01:11:08Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2019-10-04T16:06:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2d880b8709c013d47472f85a9d42ea1aca3bce47'/>
<id>urn:sha1:2d880b8709c013d47472f85a9d42ea1aca3bce47</id>
<content type='text'>
Extract the update of phylib's software pause mode state from
genphy_read_status(), so that we can re-use this functionality with
PHYs that have alternative ways to read the negotiation results.

Tested-by: tinywrkb &lt;tinywrkb@gmail.com&gt;
Reviewed-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: phy: add phy_speed_down_core and phy_resolve_min_speed</title>
<updated>2019-08-14T00:14:06Z</updated>
<author>
<name>Heiner Kallweit</name>
</author>
<published>2019-08-12T21:51:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=331c56ac73846fa267c04ee6aa9a00bb5fed9440'/>
<id>urn:sha1:331c56ac73846fa267c04ee6aa9a00bb5fed9440</id>
<content type='text'>
phy_speed_down_core provides most of the functionality for
phy_speed_down. It makes use of new helper phy_resolve_min_speed that is
based on the sorting of the settings[] array. In certain cases it may be
helpful to be able to exclude legacy half duplex modes, therefore
prepare phy_resolve_min_speed() for it.

v2:
- rename __phy_speed_down to phy_speed_down_core

Signed-off-by: Heiner Kallweit &lt;hkallweit1@gmail.com&gt;
Reviewed-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: Jakub Kicinski &lt;jakub.kicinski@netronome.com&gt;
</content>
</entry>
<entry>
<title>net: phy: add __set_linkmode_max_speed</title>
<updated>2019-08-14T00:14:06Z</updated>
<author>
<name>Heiner Kallweit</name>
</author>
<published>2019-08-12T21:50:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b261e0ef5f88087765df7f079a4bd0d285f7579'/>
<id>urn:sha1:7b261e0ef5f88087765df7f079a4bd0d285f7579</id>
<content type='text'>
We will need the functionality of __set_linkmode_max_speed also for
linkmode bitmaps other than phydev-&gt;supported. Therefore split it.

v2:
- remove unused parameter from __set_linkmode_max_speed

Signed-off-by: Heiner Kallweit &lt;hkallweit1@gmail.com&gt;
Reviewed-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: Jakub Kicinski &lt;jakub.kicinski@netronome.com&gt;
</content>
</entry>
<entry>
<title>net: phy: add phy_modify_paged_changed</title>
<updated>2019-08-12T04:24:32Z</updated>
<author>
<name>Heiner Kallweit</name>
</author>
<published>2019-08-09T18:44:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bf22b343ca800aac076ccf986e762b28545aa6bb'/>
<id>urn:sha1:bf22b343ca800aac076ccf986e762b28545aa6bb</id>
<content type='text'>
Add helper function phy_modify_paged_changed, behavios is the same
as for phy_modify_changed.

Signed-off-by: Heiner Kallweit &lt;hkallweit1@gmail.com&gt;
Reviewed-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: phy: Add support for 100BaseT1 and 1000BaseT1</title>
<updated>2019-05-23T00:46:28Z</updated>
<author>
<name>Andrew Lunn</name>
</author>
<published>2019-05-22T18:47:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b2557764d0ebf387da7a11967fd955f3b226b172'/>
<id>urn:sha1:b2557764d0ebf387da7a11967fd955f3b226b172</id>
<content type='text'>
Add link modes for 100Mbps and 1Gbps over a single pair.

Signed-off-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: phy: improve pause handling</title>
<updated>2019-05-04T04:47:55Z</updated>
<author>
<name>Heiner Kallweit</name>
</author>
<published>2019-05-01T19:34:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=22c0ef6b1475aef4765efc4aa764b8580018123c'/>
<id>urn:sha1:22c0ef6b1475aef4765efc4aa764b8580018123c</id>
<content type='text'>
When probing the phy device we set sym and asym pause in the "supported"
bitmap (unless the PHY tells us otherwise). However we don't know yet
whether the MAC supports pause. Simply copying phy-&gt;supported to
phy-&gt;advertising will trigger advertising pause, and that's not
what we want. Therefore add phy_advertise_supported() that copies all
modes but doesn't touch the pause bits.

In phy_support_(a)sym_pause we shouldn't set any bits in the supported
bitmap because we may set a bit the PHY intentionally disabled.
Effective pause support should be the AND-combined PHY and MAC pause
capabilities. If the MAC supports everything, then it's only relevant
what the PHY supports. If MAC supports sym pause only, then we have to
clear the asym bit in phydev-&gt;supported.
Copy the pause flags only and don't touch the modes, because a driver
may have intentionally removed a mode from phydev-&gt;advertising.

Signed-off-by: Heiner Kallweit &lt;hkallweit1@gmail.com&gt;
Reviewed-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>phy: warn if phylib and ethtool PHY mode definitions are out of sync</title>
<updated>2019-04-14T20:37:06Z</updated>
<author>
<name>Heiner Kallweit</name>
</author>
<published>2019-04-13T18:53:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c6576bfe2f4baa6cbbcd50a4dcd17e843e28fcd7'/>
<id>urn:sha1:c6576bfe2f4baa6cbbcd50a4dcd17e843e28fcd7</id>
<content type='text'>
If new PHY modes are added people may miss to update all relevant places
in the kernel. Therefore add a build bug check for new modes in enum
ethtool_link_mode_bit_indices that haven't been added to phylib yet.

Suggested-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: Heiner Kallweit &lt;hkallweit1@gmail.com&gt;
Reviewed-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: phy: add support for new modes in phylib</title>
<updated>2019-04-14T20:37:06Z</updated>
<author>
<name>Heiner Kallweit</name>
</author>
<published>2019-04-13T18:50:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5a3144e419562181bb223de68173b90a8163ebfd'/>
<id>urn:sha1:5a3144e419562181bb223de68173b90a8163ebfd</id>
<content type='text'>
Recently new modes have been added to ethtool.h, but the related
extension to phylib hasn't been done yet. So add support for these
modes.

v2:
- add missing 100Gbps and 50Gbps modes

Signed-off-by: Heiner Kallweit &lt;hkallweit1@gmail.com&gt;
Reviewed-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: phy: shrink PHY settings array</title>
<updated>2019-04-14T20:37:06Z</updated>
<author>
<name>Heiner Kallweit</name>
</author>
<published>2019-04-13T18:48:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f1538eca9ea6ec1f67a8832a8fb011326da971c6'/>
<id>urn:sha1:f1538eca9ea6ec1f67a8832a8fb011326da971c6</id>
<content type='text'>
The definition of array settings[] is quite lengthy meanwhile. Add a
macro to shrink the definition.

v2:
- Fix an indentation issue

Signed-off-by: Heiner Kallweit &lt;hkallweit1@gmail.com&gt;
Reviewed-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
