Re: [PATCH net v2] net: phy: dp83869: fix status reporting for 1000base-x autonegotiation
From: Jakub Kicinski
Date: Thu Nov 07 2024 - 11:28:41 EST
On Mon, 04 Nov 2024 09:52:32 +0100 Romain Gantois wrote:
> 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, in theory, make reading
> the autonegotiation status transparent.
>
> However, the fiber registers at offset 0xc04 and 0xc05 do not follow the
> bit layout of their standard counterparts. 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 driver-specific
> functions which take into account the nonstandard bit layout of the DP83869
> registers in 1000base-x mode.
Could we get an ack from PHY maintainers?