summaryrefslogtreecommitdiffstats
path: root/tools/kvm
diff options
context:
space:
mode:
authorRomain Gantois <romain.gantois@bootlin.com>2024-11-12 15:06:08 +0100
committerJakub Kicinski <kuba@kernel.org>2024-11-15 04:11:03 +0100
commit378e8feea9a70d37a5dc1678b7ec27df21099fa5 (patch)
treefbe36ad650772a9bb43c6842cb691d8135a54e39 /tools/kvm
parentMerge tag 'net-6.12-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/net... (diff)
downloadlinux-378e8feea9a70d37a5dc1678b7ec27df21099fa5.tar.xz
linux-378e8feea9a70d37a5dc1678b7ec27df21099fa5.zip
net: phy: dp83869: fix status reporting for 1000base-x autonegotiation
The DP83869 PHY transceiver supports converting from RGMII to 1000base-x. In this operation mode, autonegotiation can be performed, as described in IEEE802.3. The DP83869 has a set of fiber-specific registers located at offset 0xc00. When the transceiver is configured in RGMII-to-1000base-x mode, these registers are mapped onto offset 0, which should make reading the autonegotiation status transparent. However, the fiber registers at offset 0xc04 and 0xc05 follow the bit layout specified in Clause 37, and genphy_read_status() assumes a Clause 22 layout. Thus, genphy_read_status() doesn't properly read the capabilities advertised by the link partner, resulting in incorrect link parameters. Similarly, genphy_config_aneg() doesn't properly write advertised capabilities. Fix the 1000base-x autonegotiation procedure by replacing genphy_read_status() and genphy_config_aneg() with their Clause 37 equivalents. Fixes: a29de52ba2a1 ("net: dp83869: Add ability to advertise Fiber connection") Cc: stable@vger.kernel.org Signed-off-by: Romain Gantois <romain.gantois@bootlin.com> Link: https://patch.msgid.link/20241112-dp83869-1000base-x-v3-1-36005f4ab0d9@bootlin.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/kvm')
0 files changed, 0 insertions, 0 deletions